##준비
Mybais 다운로드
Mysql 다운로드 및 설치 - http://soft33.tistory.com/entry/mysql-%EC%84%A4%EC%B9%98
Tomcat7 다운로드 - http://tomcat.apache.org/download-70.cgi
1.프로젝트 생성
Run As - Run on Server - Hello world!를 확인한다.
페이지에 문자가 깨져서 나왔다면 페이지 최상단에 다음 내용을 추가해준다.
<%@ page language= "java" contentType ="text/html; charset=UTF-8" pageEncoding ="UTF-8"%>
pom.xml - Maven설정파일
pom.xml 마우스오른쪽 클릭<Maven<Add Dependency mybatis와 mysql 설정해준다. 혹은 pom.xml더블클릭하여 Dependencies에서
추가할 수 있다.
Group Id : org.mybatis
Artifact Id: mybatis
Version : 3.2.2
Group Id : org.mybatis
Artifact Id: mybatis-spring
Version : 1.2.0
Group Id : mysql
Artifact Id: mysql-connector-java
Version : 5.1.31
Group Id : org.springframework
Artifact Id: spring-jdbc
Version : 3.2.3.RELEASE
pom.xml 파일을 저장후 Maven 라이브러리 목록을 확인해보자.
mybatis, mybatis-spring, spring-jdbc, sql커넥터의 jar를 자동으로 다운로드하여 라이브러리에 추가한다.
전지전능 Maven mybatis, mybatis-spring, mysql-connector, spring-jdbc 다운확인
src<main<WEB-INF<spring<root-context.xml에 빈 추가(파일오른쪽 클릭 Bean Definition) 혹은 더블클릭하여 beans에서 추가
Bean Definition
Id : dataSource
Class[Browse]: org.apache.ibatis.datasource.pooled.PooledDataSource
next - add Properties
name : driver
value : com.mysql.jdbc.Driver
name : url
value : jdbc:mysql://localhost:3306/test
name : username
value : root
name : password
value : pass
Bean Definition
Id : sqlSessionfactory
Class[Browse]: org.mybatis.spring.SqlSessionFactoryBean -Maven에서 설정해놓았던 mybatis-spring-1.2.0.jar에있는 class사용
next - add Properties
name : dataSource
value : dataSource
name : configLocation
value : classpath:/mybatis/mybatis-config.xml 오류무시체크 후 Finish mybatis-config.xml은 후에 생성함.
Bean Definition
Id : transactionManager
Class[Browse]: org.springframework.jdbc.datasource.DataSourceTransactionManager
next - add Properties
name : dataSource
value : dataSource
Bean Definition
Id :sqlSession
Class[Browse]: org.mybatis.spring.SqlSessionTemplate
next - add Constructor Args (!)확인
value :
ref : sqlSessionFactory
<bean id ="dataSource" class="org.apache.ibatis.datasource.pooled.PooledDataSource" >
<property name ="driver" value= "com.mysql.jdbc.Driver"></property >
<property name ="url" value= "jdbc:mysql://localhost:3306/test" ></property >
<property name ="username" value="root"></ property>
<property name ="password" value= "tlsrlqja7"></property >
</bean >
<bean id ="sqlSessionFactory" class= "org.mybatis.spring.SqlSessionFactoryBean">
<property name ="dataSource" ref= "dataSource"></property >
<property name ="configLocation"
value= "classpath:/mybatis/mybatis-config.xml" >
</property >
</bean >
<bean id ="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name ="dataSource" ref= "dataSource"></property >
</bean >
<bean id ="sqlSession"
class= "org.mybatis.spring.SqlSessionTemplate" >
<constructor-arg ref= "sqlSessionFactory"></constructor-arg >
</bean >
완료하였다면 위와같은 bean이 생겼을것이다.
P.S <constructor-arg index="0" ref= "sqlSessionFactory" ></constructor-arg >
index="0" 생성자 주입의 경우 constructor-arg를 사용하여 지정한다. constructor-arg는 property요소와 달리 name 속성을 갖지 않는다.생성자 인자들의 타입이 동일할 경우 index를 이용하여 구분한다. 0~ index대신 type="java.lang.String"을 이용하여 구분할 수도있다.
mybatis-config.xml 생성
src/main/resources/mybatis/mybatis-config.xml을 생성하자.
<?xml version="1.0" encoding= "UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
<configuration>
<mappers >
<mapper resource ="/mybatis/Mapper.xml"/>
</mappers >
</configuration>
Mapper.xml 생성
src/main/resources/mybatis/Mapper.xml을 생성하자.
<?xml version="1.0" encoding= "UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace= "userControlMapper" >
<select id ="selectSample" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select *
from user
where name = #{name}
</select >
<insert id ="insertTable01" parameterType="java.util.HashMap" >
insert into user
(name, email)
values
( #{name}, #{email} )
</insert >
</mapper>
완성되었다. Test 해보자. 프로젝트만들때 자동으로 생성된 HomeController.java를 사용하여 테스트 해보자.
추가한 코드는 구분해놓았다.
아래 테스트코드는 mysql이 실행되어있어야 하며 test DB에 user테이블 및 name 컬럼에 데이터가 있어야 작동한다.
package com.project.shinP3;
import java.text.DateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import org.apache.ibatis.session.SqlSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
@Autowired
private SqlSession sqlSession;
private SqlSession sqlSession;
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
HashMap<String, String> input = new HashMap<String, String>();
input.put("name", "shin");
List<HashMap<String, String>> outputs = sqlSession.selectList("userControlMapper.selectSample", input);
System.out.print(outputs.toString());
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate );
HashMap<String, String> input = new HashMap<String, String>();
input.put("name", "shin");
List<HashMap<String, String>> outputs = sqlSession.selectList("userControlMapper.selectSample", input);
System.out.print(outputs.toString());
'자바스토리 > Spring' 카테고리의 다른 글
spring validation check (0) | 2014.11.19 |
---|---|
spring properties 설정 (0) | 2014.09.18 |
[Spring] 메소드 파라미터(parameter) 및 어노테이션(Annotation) 정리 (0) | 2014.03.13 |
이클립스 스프링 프러그인 설치 (0) | 2013.11.23 |
spring설정 참조 (0) | 2013.11.23 |