스프링부트 오라클 연결

스프링 부트는 자바 기반의 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크입니다. 오라클은 대표적인 관계형 데이터베이스로, 스프링 부트 애플리케이션과 연동하여 데이터를 저장하고 조회할 수 있습니다. 이번 글에서는 스프링 부트 애플리케이션에서 오라클 데이터베이스에 접속하는 방법에 대해 알아보겠습니다.

1. 오라클 데이터베이스 설정

스프링 부트 애플리케이션에서 오라클 데이터베이스에 접속하기 위해서는 먼저 데이터베이스 설정을 해야 합니다. 스프링 부트의 application.properties 파일에 아래와 같이 데이터베이스 연결 정보를 입력해주세요.

spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.username=your-username
spring.datasource.password=your-password
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

# Hibernate 설정
spring.jpa.properties.hibernate.default_schema=your-schema
spring.jpa.database-platform=org.hibernate.dialect.Oracle12cDialect

위 설정에서 jdbc:oracle:thin:@localhost:1521:XE는 데이터베이스의 주소를 나타냅니다. your-usernameyour-password는 접속에 사용할 사용자 이름과 비밀번호를 입력하세요. your-schema는 사용할 스키마 이름을 입력해주세요.

2. 오라클 JDBC 드라이버 추가

스프링 부트 애플리케이션에서 오라클 데이터베이스에 접속하기 위해서는 오라클 JDBC 드라이버를 추가해야 합니다. pom.xml 파일에 아래 의존성을 추가해주세요.

<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.8.0.0</version>
</dependency>

3. 스프링 부트 애플리케이션에서 오라클 사용하기

이제 스프링 부트 애플리케이션에서 오라클 데이터베이스를 사용할 준비가 되었습니다. JPA를 사용하여 엔티티를 정의하고, 해당 엔티티와 연결된 테이블에 데이터를 CRUD할 수 있습니다. 아래는 간단한 예시 코드입니다.

@Entity
@Table(name = "employee")
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private int age;

    // getters and setters
}

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}

//@Service
public class EmployeeService {

    private final EmployeeRepository employeeRepository;

    public EmployeeService(EmployeeRepository employeeRepository) {
        this.employeeRepository = employeeRepository;
    }

    public List<Employee> getAllEmployees() {
        return employeeRepository.findAll();
    }

    public Employee getEmployeeById(Long id) {
        return employeeRepository.findById(id).orElse(null);
    }

    public Employee saveEmployee(Employee employee) {
        return employeeRepository.save(employee);
    }

    public void deleteEmployee(Long id) {
        employeeRepository.deleteById(id);
    }
}

@RestController
@RequestMapping("/employees")
public class EmployeeController {

    private final EmployeeService employeeService;

    public EmployeeController(EmployeeService employeeService) {
        this.employeeService = employeeService;
    }

    @GetMapping
    public List<Employee> getAllEmployees() {
        return employeeService.getAllEmployees();
    }

    @GetMapping("/{id}")
    public Employee getEmployeeById(@PathVariable Long id) {
        return employeeService.getEmployeeById(id);
    }

    @PostMapping
    public Employee saveEmployee(@RequestBody Employee employee) {
        return employeeService.saveEmployee(employee);
    }

    @DeleteMapping("/{id}")
    public void deleteEmployee(@PathVariable Long id) {
        employeeService.deleteEmployee(id);
    }
}

위 코드에서는 Employee 엔티티를 정의하고, 해당 엔티티에 대한 CRUD 기능을 갖는 EmployeeServiceEmployeeController를 작성하였습니다. 이제 스프링 부트 애플리케이션을 실행하면 http://localhost:8080/employees 엔드포인트를 통해 오라클 데이터베이스와의 연결이 이루어지고 데이터를 조회할 수 있게 됩니다.

#java #스프링부트 #오라클 #데이터베이스