(코드로 배우는 Spring 웹 프로젝트) ch03 Spring과 Oracle DB 연결하기(Hikari 사용)

1. 오라클 설치

https://url.kr/bmt5ua

▷ 위 주소에서 Oracle 11g XE 사용

▷ 시스템 및 SYS 계정의 비밀번호는 설치 시 설정해야 합니다.

PW : 비밀번호로 설정

2. SQL 디벨로퍼 설치

▷ SQL Developer 다운로드 경로: https://www.oracle.com/tools/downloads/sqldev-downloads.html

▷ 별도의 설치 없이 압축파일의 압축을 풀고 실행하면 됩니다.

◎ 왼쪽 상단의 + 버튼을 클릭하여 Oracle에 접속하고 사용자를 추가합니다.


◎ 예제에서 사용한 계정을 생성합니다.

select dbms_xdb.gethttpport() from dual;

exec dbms_xdb.sethttpport(9090);

/* 사용자 계정 생성 */

create user book_ex identified by book_ex
default tablespace users
temporary tablespace temp;

grant connect, DBA to book_ex;

포트를 변경하고 새 사용자를 생성하는 코드입니다.

◎ pom.xml에 Oracle 관련 라이브러리 추가

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>

◎ 연결 풀 설정

▷ 동시에 여러 사용자를 처리해야 하는 웹 어플리케이션의 경우 데이터베이스 연결 사용 시 연결 풀 설정을 사용하므로 Spring에 연결 풀을 등록하여 사용하는 것을 권장합니다.
▷ Java에서는 DataSource라는 인터페이스를 통해 커넥션 풀을 사용합니다.
▷ 매번 DataSource를 통해 데이터베이스에 연결하는 대신 미리 연결을 설정하고 반환하는 구조 사용

▷ 커넥션 풀은 여러 종류가 있으며 spring-jdbc 라이브러리를 사용하셔도 되지만 HikariCP를 사용하시면 됩니다.

▷ Spring Boot 2.0에서 사용할 정도로 빠르게 확산

◎ pom.xml

... (생략) ...
<!-- 추가 -->
	<dependency>
		<groupId>com.zaxxer</groupId>
		<artifactId>HikariCP</artifactId>
		<version>2.7.4</version>
	</dependency>
		
				
	<!-- AspectJ -->
        
... (생략) ...

HikariCP-2.7.4.jar 파일이 Maven에 자동으로 추가됩니다.

◎ src/main/webapp/WEB-INF/spring/root-context.xml

<!-- ...(생략)... -->
<!-- (추가) -->
	<!-- Root Context: defines shared resources visible to all other web components -->
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
		<property name="driverClassName" 
		value="oracle.jdbc.driver.OracleDriver"></property>
		<property name="jdbcUrl" 
		value="jdbc:oracle:thin:@localhost:1521:XE"></property>
		<property name="username" value="book_ex"></property>
		<property name="password" value="book_ex"></property>
	</bean>
	
	<!-- HikariCP configuration -->
	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
	destroy-method="close">
	</bean>
<!-- ...(생략)... -->

Spring에서 root-context.xml은 Spring이 로드될 때 읽는 문서이므로 이미 생성된 클래스를 Spring Bean으로 등록할 때 사용한다.

일반적으로 프로젝트에 직접 작성된 클래스는 주석을 사용하며 외부 JAR 파일로 사용되는 클래스는 태그가 지정됩니다. 쓴.

◎ src/test/java/org/codehows/persistence → JDBCTests.java

package org.codehows.persistence;

import static org.junit.Assert.fail;

import java.sql.Connection;
import java.sql.DriverManager;

import org.junit.Test;

import lombok.extern.log4j.Log4j;

@Log4j
public class JDBCTests {
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

@Test
public void testConnection() {
	try(Connection con = 
			DriverManager.getConnection(
					"jdbc:oracle:thin:@localhost:1521:XE",
					"book_ex",
					"book_ex")){
		log.info(con);
	} catch(Exception e) {
		fail(e.getMessage());
	}
}
}

아래 결과가 보이면 실행이 성공한 것입니다.
오른쪽 하단에서 Java 실행 성공/실패를 확인할 수 있습니다.
Java를 실행할 때 run as 로 실행됩니다.


Java 테스트 파일을 만들고 Spring과 Oracle을 연결해 보았습니다.

지금까지 했던 방법들과 비슷하지만, pom.xml로 따로 빌드하는 것이 아니라서 조금 다릅니다.

pom.xml 사용법을 잘 알고 익혀야겠어요!

많은 분들의 피드백은 언제나 환영합니다! 댓글 많이 달아주세요~~