오라클과 Spring Boot를 연동하는 방법은 다음과 같습니다.
1. Dependency 추가
- Maven을 사용하는 경우, pom.xml 파일에 아래의 의존성을 추가합니다.
<dependencies>
<!-- Spring JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- Oracle JDBC Driver -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.11.0.0</version>
</dependency>
</dependencies>
2. application.properties 설정
- Spring Boot 애플리케이션의 resources 디렉토리에 있는 application.properties 파일에 다음과 같이 Oracle 데이터베이스 연결 정보를 설정합니다.
# Oracle Connection
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
- 위의 설정에서 `jdbc:oracle:thin:@localhost:1521:xe` 부분은 연결하려는 Oracle 데이터베이스의 주소입니다. 이를 자신의 데이터베이스에 맞게 변경해야 합니다.
3. Repository 작성
- Spring Data JPA를 사용하여 데이터베이스 작업을 수행하는 Repository를 작성합니다. 예를 들어, User 테이블에 접근하는 UserRepository를 다음과 같이 작성할 수 있습니다.
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
// 사용자 이름으로 사용자 찾기
User findByUsername(String username);
}
- `JpaRepository`는 Spring Data JPA에서 제공하는 기본적인 CRUD 기능을 포함한 Repository 인터페이스입니다. `User` 엔티티의 타입 매개변수는 엔티티 클래스의 타입을 지정하고, `Long`은 해당 엔티티의 ID 타입을 지정합니다.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
private final UserRepository userRepository;
@Autowired
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User registerUser(User user) {
// 사용자 등록 로직
return userRepository.save(user);
}
}
- `@Service` 애너테이션은 해당 클래스를 Spring의 Bean으로 등록합니다. `UserRepository`는 Spring에 의해 자동으로 주입됩니다.
5. Controller 작성
- Service를 호출하여 웹 요청을 처리하는 Controller를 작성합니다. 예를 들어, 사용자 등록을 처리하는 UserController를 다음과 같이 작성할 수 있습니다.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@PostMapping("/register")
public User registerUser(@RequestBody User user) {
return userService.registerUser(user);
}
}
- `@RestController` 애너테이션은 해당 클래스를 RESTful 웹 서비스의 컨트롤러로 정의합니다. `@PostMapping` 애너테이션은 POST 요청을 처리하는 메소드임을 나타냅니다.
6. 예제 실행
- 위의 예제 코드를 작성하고 Spring Boot 애플리케이션을 실행하면, `/register` 엔드포인트로 POST 요청을 보낼 수 있고, 해당 요청은 핸들러 메소드인 `registerUser`를 실행합니다. 이후 UserService의 `registerUser` 메소드가 호출되어 데이터베이스에 사용자가 등록됩니다.
이제 Oracle 데이터베이스와 Spring Boot를 연동하여 데이터베이스 작업을 수행할 수 있는 환경이 구성되었습니다. 이를 기반으로 필요한 데이터베이스 작업을 진행하면 됩니다.
'Springboot' 카테고리의 다른 글
JPA 에 대한 설명 및 예제 (0) | 2023.09.18 |
---|---|
ORM이란 (0) | 2023.09.18 |
Springboot - RabbitMQ 연동 (0) | 2023.09.18 |
MariaDB 연동 예제 (0) | 2023.09.17 |
로깅 라이브러리 @Slf4J 예제 (0) | 2023.09.17 |