05.02. 데이터베이스 준비하기 - 2

5.3. 데이터 베이스 라이브러리 설정

스프링에서 데이터베이스에 접속하기 위해서는 추가 라이브러리가 필요하다. 우리는 마이바티스라는 라이브러리를 써서 데이터베이스에 접근하는 방식을 취할 것이다.
메이븐 프로젝트에서 모든 라이브러리 관리는 메이븐이 담당하므로, 메이븐 설정 파일인 pom.xml 파일에 아래의 내용을 추가한다.

pom.xml

<!-- database -->

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.4</version>
</dependency>


<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.4</version>
</dependency>


<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>


<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <version>2.7.0</version>
</dependency>


<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
    <version>1.16</version>
</dependency>


<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.19</version>
</dependency>

메이븐 설정 pom.xml을 수정하고 나면 항상 메이븐 빌드를 해야 한다. 프로젝트 우클릭 => Run as .. => 4. Maven Build 를 차례로 클릭하거나 Alt + Shift + X => M을 눌러서 할 수 있다.

 

만약 BUILD FAILURE가 나면 프로젝트 클린(이클립스 => project => clean) 후 다시 메이븐 빌드를 하면 된다. 클린은 뭔가 다 잘 한 것 같은데 실행이 안 될때 한번씩 해 보자. 마법처럼 클린 후에 잘 실행되는 일이 많다.

5.4. 데이터 소스 설정하기

데이터베이스에 접속하기 위한 정보를 설정한다. 외부 연동 관련 정보는 context 에서 설정한다.

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">

 <!-- Root Context: defines shared resources visible to all other web components -->

 <!-- for mysql -->
 <bean id="dataSource"
  class="org.apache.commons.dbcp2.BasicDataSource"
  destroy-method="close">
  <property name="driverClassName"
   value="com.mysql.cj.jdbc.Driver" />
  <property name="url"
   value="jdbc:mysql://localhost:3306/yse_spring_mvc?serverTimezone=UTC&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8" />
  <property name="username" value="yse_spring_mvc_user" />
  <property name="password" value="1234" />
 </bean>

 <bean id="sqlSessionFactory"
  class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="mapperLocations"
   value="classpath:/sqlmap/**/*_SQL.xml" />
 </bean>
 <bean id="sqlSessionTemplate"
  class="org.mybatis.spring.SqlSessionTemplate">
  <constructor-arg index="0" ref="sqlSessionFactory" />
 </bean>  
</beans>