[SPRING] 스프링 MyBatis 오라클 JDBC 설정 (Spring Mybatis Oracle jdbc)
안녕하세요. 소다맛사탕 입니다.
이번 포스팅에서는 Spring Framework Mybatis 이용해 오라클 DB를 연동 하는 것을 알아보겠습니다.
※ JDBC ; 자바에서 데이터베이스에 접속할 수 있도록 하는 자바API. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.
참고 : https://ko.wikipedia.org/wiki/JDBC
※ Mybatis ; 자바 퍼시스턴스 프레임워크의 하나로 XML 서술자나 애너테이션을 사용하여 저장 프로시저나 SQL 문으로 객체들을 연결.
참고 : https://ko.wikipedia.org/wiki/%EB%A7%88%EC%9D%B4%EB%B0%94%ED%8B%B0%EC%8A%A4
본격적으로 스프링 마이바티스 오라클 DB를 연동하는 과정에 앞서...
먼저 라이브러리를 추가해야 합니다.
위의 MAVEN 레퍼지토리 사이트를 통해
프로젝트의 pom.xml 파일에 DBCP 관련 <depencency> 설정을 추가해야 합니다.
<properties>
<java-version>1.8</java-version>
<org.springframework-version>4.3.2.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<!-- ojdbc 다운받기위해 추가 -->
<repository>
<id>oracle</id>
<name>ORACLE JDBC Repository</name>
<url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>
</repository>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- Oracle -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
오라클과 연결하기 위해서는 ojdbc와 커넥션풀 라이브러리를 추가해야 합니다.
※ 커넥션풀 ; db커넥션을 미리 만들어놓고 요청이 들어오면 커넥션을 하니씩 배정해 DB에 접속하는 시간을 줄여주는 역할.
솔직히 ojdbc 설정을 잘못해서 오라클 DB연결이 안되는 경우가 많습니다.
ojdbc는 <dependency>만 작성하면 안되고
상단과 같이 Oracle JDBC Repository를 추가해야 MAVEN 레퍼지토리가 참고해서 ojdbc를 다운받습니다.
저는 jdk6, 7, 8 위주로 개발을 하기에 ojdbc6을 사용합니다.
Mybatis 설정은 경로에 보듯이 mybatis-config.xml 파일을 생성한 후
아래와 같이 xml을 작성합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
...
</configuration>
Oracle DB와 연동하기 위해서 경로와 같이 root-context.xml 파일에
아래와 같이 xml을 작성합니다.
<!-- Root Context: defines shared resources visible to all other web components -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- 드라이버 클래스 이름이 변경됨 --><!-- oracle.jdbc.driver.OracleDriver -->
<property name="driverClassName" value="net.sf.log4jdbc.DriverSpy" />
<!-- 연결문자열에 log4jdbc가 추가됨 -->
<property name="url" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="username" value="오라클사용자이름" />
<property name="password" value="오라클사용자비번" />
</bean>
<!-- SqlSessionFactory 객체 주입 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:mapper/**/*Mapper.xml"></property>
</bean>
Oracle DB연동 설정에 있어서 <beans> 는 적지 않았지만, 해당 <bean> 클래스를 사용하기 위해서는 설정해줘야 하는 셋팅이 더 있습니다. 그것은 다음에 추가적으로 알아보겠습니다.