본문 바로가기

BackEnd/Spring

[코드로 배우는 스프링 웹 프로젝트] ch03 스프링과 오라클 DB 연동(히카리 사용)

728x90
반응형

1. 오라클 설치

   ▷ https://url.kr/bmt5ua

   ▷ 위의 주소에서 오라클 11g XE를 이용

   ▷ 설치 도중 System, SYS 계정의 패스워드 지정 필요

      ▶ PW : password로 지정

 

 

2. SQL Developer 설치

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

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

 

 

◎ 오라클 접속 및 왼쪽 상단 + 버튼 선택해서 사용자 추가

 

 

◎ 예제에 사용하는 계정 생성

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에 오라클 관련 라이브러리 추가

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

 

◎ 커넥션 풀 설정

▷ 여러 명의 사용자를 동시에 처리해야 하는 웹 애플리케이션의 경우 데이터베이스 연결을 이용할 때는 커넥션 풀 설정(Conneciton Pool)을 이용하므로 스프링에 커넥션 풀을 등록해서 사용하는 것이 좋음
▷ Java에서는 DataSource라는 인터페이스를 통해 커넥션 풀을 사용
▷ DataSource를 통해 매번 데이터베이스와 연결하는 방식이 아니라 미리 연결을 맺어주고 반환하는 구조 사용

▷ 커넥션 풀은 여러 종류가 있고 spring-jdbc 라이브러리를 사용해도 되지만 HikariCP를 사용

▷ 스프링 부트 2.0에서도 사용될 만큼 빠르게 퍼지고 있음

 

 

◎ pom.xml

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


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

 

 

◎ 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>
<!-- ...(생략)... -->


스프링에서 root-context.xml은 스프링이 로딩되면서 읽어 들이는 문서이므로, 이미 만들어진 클래스들을 이용해 스프링의 빈(Bean)으로 등록할 때 사용됨.

일반적으로 프로젝트에 직접 작성하는 클래스들을 어노테이션을 사용하며, 외부 jar 파일 등으로 사용하는 클래스들은 <bean> 태그를 이용해서 작성

 

 

◎ 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());
	}
}
}

 

아래와 같은 결과가 나타나면 실행 성공입니다.
오른쪽 아랫부분에 자바 실행의 성공/실패 여부를 확인할 수 있습니다.
자바 실행시는 run as로 실행합니다.

 

java test 파일을 만들어 spring과 오라클을 연동시켜 보았습니다.

 

이때까지 했던 방식들과 유사하지만 pom.xml을 이용해 따로 build를 하지 않고 진행한다는 점이 좀 다르네요.

 

pom.xml을 잘 이용할 수 있는 방법들을 알아두고 익혀야겠어요!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형