# 데이터베이스 연동하기
JDBC 라이브러리를 사용하면, 자바로 다양한 DBMS와 연동할 수 있어. myBatis 라이브러리까지 사용한다면 매우 편리하게 SQL을 사용할 수 있지.
## 목표
데이터베이스 활용을 할 수있도록 환경설정을 한다.
## 목차
1. 라이브러리 등록(pom.xml)
2. JDBC, PostgreSQL 설정
- root-context.xml
- jdbc.properties
- database 생성
3. myBatis 설정
- root-context.xml
- mybatis-config.xml
## 라이브러리 등록
스프링MVC의 라이브러리 관리는 **pom.xml** 사용해. 데이터베이스 사용을 위해 아래의 라이브러리를 등록하도록 하자. 파일 검색(Ctrl + Shift + R)을 통해 파일을 찾자.
그 다음, 스프링 버전을 올려주고,
```
// 처음에는 3.1.1 일거임.
<org.springframework-version>4.3.2.RELEASE</org.springframework-version>
```
`<dependencies>...</dependencies>` 사이에 아래 코드 추가하자.
```
<!-- PostgreSQL 9.4 -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1209.jre6</version>
</dependency>
<!-- MyBatis 3.4 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- MyBatis-Spring 1.3-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- Spring-JDBC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
```
설정을 추가하면 Maven Dependencies에 자동으로 다운이 돼.
![](https://i.imgur.com/oPwvvey.png)
설정파일(*.xml) 변경시 서버를 재시작해서 잘 동작하는지 확인하는 것 잊지 말고.
## JDBC, PostgreSQL 설정
JDBC를 사용하면 다양한 DBMS를 사용할 수 있어. 우리는 PostgreSQL을 사용할 거야.
### root-context.xml
라이브러리를 실제로 사용하려면 객체를 생성해야해. **root-context.xml**에 `dataSource` 객체를 등록하자.
```
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- properties -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:/jdbc.properties" />
<property name="fileEncoding" value="UTF-8" />
</bean>
<!-- JDBC-PostgreSQL -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
</beans>
```
### jdbc.properties
다음으로 jdbc.properties 파일을 만들자. 중괄호 표시부분은 자신의 데이터베이스에 맞게 변경해줘.
src/main/resources/jdbc.properties
```
jdbc.driverClassName=org.postgresql.Driver
jdbc.url=jdbc:postgresql://localhost:5432/{databaseName}
jdbc.username={username}
jdbc.password={password}
```
### database 생성
pgAdminIII을 실행해서 위에서 작성한 데이터베이스를 생성하자.
```
CREATE DATABASE {databaseName};
```
서버를 재시작해서 헬로월드가 뜨면 성공!
## myBatis 설정
SQL을 쉽게 사용하기위해 myBatis를 설정하자.
### root-context.xml
라이브러리를 사용하려면 객체를 등록해야지? 아래 코드를 `dataSource` 밑에 추가하자.
```
<!-- MyBatis-Spring -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
```
### mybatis-config.xml
다음으로 myBatis 설정파일을 만들어야해.
src/main/resources/mybatis-config.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>
<!--
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/spring" />
<property name="username" value="postgres" />
<property name="password" value="postgres" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml" />
</mappers>
-->
</configuration>
```
위 코드는 딱히 설정이 없어. 추후 필요하면 변경하면 돼. 설정을 마쳤으면 서버를 재시작해서 확인해보자.
## 레퍼런스
+ http://www.mybatis.org/spring/getting-started.html
+ http://www.mybatis.org/mybatis-3/getting-started.html