스프링 MVC

준비중..

스프링 MVC

스프링을 사용한 웹서비스 만들기

05 데이터베이스 연동하기

# 데이터베이스 연동하기 웹서비스를 만들기 위해 데이터 베이스를 설정해 봅시다. --- ### DB 라이브러리 가져오기(pom.xml 설정) 먼저 필요 라이브러리들을 **pom.xml**에 추가해야 합니다. 필요한 라이브러리 목록은 아래와 같습니다. + PostgreSQL + Spring-JDBC + MyBstis + MyBatis-Spring > 필요 라이브러리들은 http://www.mvnrepository.com/ 에서 검색할 수 있습니다. 자 그럼 pom.xml파일중 디펜던시스 태그 사이(`<dependencies>...</dependencies>`)에 아래 내용을 추가해 줍니다. ```xml <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> ... </dependencies> ``` 설정을 추가하면 해당 라이브러리들은 Maven Dependencies에 자동으로 다운받아집니다. ![Imgur](https://i.imgur.com/oPwvvey.png) 이제 서버를 재시작하여 잘 동작하는지 확인해 주세요. ![Imgur](https://i.imgur.com/2JhHnEL.png) > 설정파일(*.xml)은, 서버를 재시작하여야 적용됩니다. --- ### root-context.xml 둘러보기 스프링에서는 웹서비스 전역에서 사용되는 객체들을 **root-context.xml** 파일에 등록하여 사용합니다. 이곳에 데이터베이스 객체들을 등록해 보도록 합시다. 먼저 root-context.xml 파일을 열어봅니다. ```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 http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Root Context: defines shared resources visible to all other web components --> // 이곳에 필요한 객체들을 등록해 줍니다. </beans> ``` 이제 이곳에 필요한 객체들을 하나씩 생성해 주도록 합시다. --- ### JDBC-PostgreSQL 객체 등록하기 **root-context.xml** 파일에 `dataSource` 객체를 등록합니다. ```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 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** 파일을 생성해 줍니다. ![Imgur](https://i.imgur.com/vbMGSk6.png) ``` jdbc.driverClassName=org.postgresql.Driver jdbc.url=jdbc:postgresql://localhost:5432/myapp jdbc.username=postgres jdbc.password=postgres ``` DBMS에서 데이터 베이스를 생성하면서 마무리~ ![Imgur](https://i.imgur.com/tPRsLmg.png) > 설정을 마친후, 서버를 재시작하여 정상동작 여부를 확인하세요. --- ### MyBatis-Spring 객체 등록하기 **root-context.xml**에 `sqlSessionFactory` 객체를 등록합니다. ```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 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> <!-- MyBatis-Spring --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="configLocation" value="classpath:mybatis-config.xml" /> <property name="dataSource" ref="dataSource" /> </bean> </beans> ``` 다음으로 **mybatis-config.xml** 파일을 생성해 줍니다. ![Imgur](https://i.imgur.com/tuJGgQr.png) ```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