감 잃지말고 개발하기

[Spring][STS] 개발 환경 설정 #3. 스프링과 Oracle DB 연동 본문

코드로 배우는 스프링 웹 프로젝트(개정판)/Part 1 스프링 개발 환경 구축

[Spring][STS] 개발 환경 설정 #3. 스프링과 Oracle DB 연동

persii 2023. 8. 12. 22:54

설치 버전

  • Oracle DB : 11gR2 Express Edition
  • SQL Developer : 23.1.0.097.1607
  • HikariCP : 5.0.1
  • Spring Framework : 5.0.7.RELEASE
  • Java : 11

 

 

목표

 스프링과 Oracle DB를 연동할 수 있다.

 


♠ Oracle DB 설치는 아래 포스팅을 참고하세요

 

2023.08.12 - [DB/Oracle] - [Oracle][11g] Oracle DB 및 SQL Developer 설치

 

[Oracle][11g] Oracle DB 및 SQL Developer 설치

설치 버전 Java : 11 Oracle DB : 11gR2 Express Edition SQl Developer : 23.1.0.097.1607 오라클 설치 - 아래 사이트에서 OS에 맞는 zip파일을 다운로드한 후, setup 파일을 클릭해 설치한다. https://www.oracle.com/database/techn

persimmon-ary-stepbystep.tistory.com


 

 

Oracle DB 설정

Spring과 Oracle DB를 연동하기에 앞서 필요한 두 가지 설정을 해준다.

 

♠ 계정 생성

- SYSTEM 계정으로 접속해 새로운 계정을 생성하고 권한을 부여한다.

-- 계정 생성
CREATE USER book_ex IDENTIFIED BY book_ex
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

-- 권한 부여
GRANT CONNECT, DBA TO book_ex;

 

- book_ex 계정으로 접속해 성공적으로 연결되었는지 확인한다.

book_ex 계정으로 연결

 

♠ 포트 번호 변경

Oracle 11g의 경우 기본적으로 8080 포트를 사용하는데, Tomcat 역시 기본 포트가 8080이기 때문에 충돌을 방지하기 위해 Oracle 포트 번호를 변경해 준다.

 

- SQL Developer에서 SYS 계정에 SYSDBA 권한으로 접속한다. 

SYS 계정의 SYSDBA 권한으로 접속

 

- 현재 포트 번호를 확인한다.

-- 현재 포트번호 조회
SELECT dbms_xdb.gethttpport()
FROM dual;

조회 결과

 

- 8080에서 9090으로 변경한다.

-- 포트 번호 변경
EXEC dbms_xdb.sethttpport(9090);

포트 번호 변경

 

 

Spring과 Oracle DB 연동

이제 STS에서 Spring 프로젝트와 Oracle DB를 연동해 보자.

 

1. 프로젝트의 JDBC 연결

Spring 프로젝트와 Oracle DB와의 연동을 위해선 Oracle DB용 JDBC 드라이버가 필요하다.

공식적으로 Oracle DB 11g 버전까지는 JDBC 드라이버가 Maven으로 지원되지 않기 때문에 직접 jar 파일을 프로젝트에 추가해야 한다.

1. JDBC 드라이버 파일 추가

jar 파일은 설치한 SQL Developer 파일 하위의 jdbc/lib 폴더에 존재하므로 따로 다운로드할 필요 없다.

나는 Java JDK 11v을 설치했기 때문에 jdbc 드라이버 역시 JDK 11v용이다.

SQL Developer 설치 파일 내에 존재하는 Oracle용 jdbc 드라이버

 

- 프로젝트의 'Java Build Path'에서 'Libraries' 탭을 클릭, 'Classpath'를 선택한 후 jdbc 드라이버 jar 파일을 추가한다.

프로젝트에 외부 jar 파일 추가

 

- ojdbc11.jar 파일이 추가된 것을 확인한 후 'Apply and Close' 버튼을 클릭한다.

프로젝트에 외부 jar 파일 적용

 

- 프로젝트 'Referenced Libraries' 하위에 추가한 jar 파일이 들어있다.

추가한 jar 파일 확인

 

2. JDBC 연결 테스트

프로젝트에 JDBC 드라이버를 추가해 주었으니 이제 DB와의 연결을 확인하도록 한다.

테스트 코드
콘솔창

 

2. 커넥션 풀 설정

프로젝트와 Oracle DB가 정상적으로 연결되었으니, 이제 커넥션 풀을 설정해 보도록 하겠다.

 

Java에서는 DataSource라는 인터페이스(통로)를 통해 커넥션 풀을 사용한다.

이를 통해 매번 DB와 연결하는 방식이 아닌, 미리 연결을 맺어주고 반환하는 구조로 성능 향상을 꾀한다.

 

많은 커넥션 풀 종류들 중, HikariCP를 사용할 것이다.

 

1. 라이브러리 추가

- pom.xml에 아래 코드를 추가HikariCP를 추가한다.

  • Java 11 ↑ maven : 5.0.1v
  • Java 8 maven : 4.0.3v
  • Java 7 maven : 2.4.13v
  • Java 6 maven : 2.3.13v
<!--HikariCP-->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.0.1</version>
</dependency>

 

2. DataSource 설정

DataSource 인터페이스를 사용하기 위해 빈으로 등록해 준다.

 

XML 설정

- <bean> 태그를 이용해 DataSource 클래스를 빈으로 등록하는데,

  이때 HikariCP 속성을 설정한 빈(id="hikariConfig")을 주입한다.

xml 설정

 

Java 설정

- @Bean 애너테이션으로 DataSource 클래스를 빈으로 등록한다.

Java 설정

 

3. 커넥션 풀 테스트

커넥션 풀 테스트
콘솔창

 

 


 

 추가 

war 파일로 만들 때 추가한 jar 파일도 포함되도록 설정

- 'Deployment Assembly' 항목에서 'Add' 버튼을 클릭한다.

war 파일로 변경 시 jar 파일 포함되도록 설정

 

- 'Java Build Path Entries'를 선택하고 'Next' 버튼을 클릭한다.

war 파일로 변경 시 jar 파일 포함되도록 설정

 

- 추가할 jar 파일을 고른 후 프로젝트에 적용한다. 

war 파일로 변경 시 jar 파일 포함되도록 설정
war 파일로 변경 시 jar 파일 포함되도록 설정