스프링연동하기/spring3 mybatis 설정

스프링3(Spring3) - ibatis 연동하기

개발로짜 2014. 8. 20. 11:03

간혹가다 spring + mybatis가 아닌 spring + ibatis 연동을 원하는 분들을 위해 포스팅 하게되었음.



2014/07/22 - [스프링연동하기/spring3 mvc 설정] - 스프링3(Spring3) MVC 연동 (1) - STS 다운로드 및 헬로월드 출력하기


2014/07/22 - [스프링연동하기/spring3 mvc 설정] - 스프링3(Spring3) MVC 연동 (2) - 폼값 전송 + 인코딩 설정


2014/07/22 - [스프링연동하기/spring3 mvc 설정] - 스프링3(Spring3)MVC 연동 (3) - 서버값 웹페이지로 전송하기


2014/07/22 - [스프링연동하기/spring3 mvc 설정] - 스프링3(Spring3) MVC 연동 (4) - 서버에 파일전송



spring 기본 연동이 되었다면 다음과 같이 ibatis 연동을위한 pom.xml설정을 잡아보도록 하자

설명은 MySQL 기준으로 진행


● POM.xml dependency 추가

<dependency>
	<groupId>org.apache.ibatis</groupId>
	<artifactId>ibatis-sqlmap</artifactId>
	<version>2.3.4.726</version>
</dependency>
<dependency>
	<groupId>commons-dbcp</groupId>
	<artifactId>commons-dbcp</artifactId>
	<version>1.4</version>
</dependency>
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>5.1.31</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jdbc</artifactId>
	<version>${spring-framework.version}</version>
</dependency>
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-orm</artifactId>
	<version>${spring-framework.version}</version>
</dependency>

● resources -> spring -> application-config.xml다 다음과 같은 코드 추가

<context:component-scan base-package="com.spring.web"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/test" />
        <property name="username" value="root" />
        <property name="password" value="apmsetup" />
</bean>
 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
	<property name="configLocation" value="classpath:/sqlmap/sql-map-config.xml"/>
	<property name="dataSource" ref="dataSource"/>
</bean>

● resources -> sql, sqlmap 폴더 생성


● application-config.xml에서 작성한 코드중 sqlMapClient bean의 

    configLocation이라는 property 속성의 value를 보면 sql-map-config.xml 을 

    바라보게 되있다.


● resources -&gt; sqlmap 폴더안에 다음 파일을 추가


sql-map-config.xml



● resources -> sql 폴더내부에는 쿼리xml 파일들이 존재해야함 

    샘플파일은 하단에 첨부

 ※ 각파일들이 추가될때마다 sql-map-config.xml에 리소스 경로 추가해주어야함


sql.xml




● HelloWorldController클래스에 하단에 있는 코드추가

@Autowired
private SpringDao dao;
	
@RequestMapping("/ibatisTest")
public void ibatisTest(){
		try {
			ArrayList<String> list = dao.ibatisTest();
    		        for(String str : list) {
    			       System.out.println(str);
       		        }
		} catch (SQLException e) {
			e.printStackTrace();
		}
}


com.spring.web.dao 패키지 생성 후 내부에 SpringDao.java 클래스를 생성

package com.spring.web.dao;

import java.sql.SQLException;
import java.util.ArrayList;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.ibatis.sqlmap.client.SqlMapClient;

@Repository
public class SpringDao {
	
	@Autowired
	private SqlMapClient sql;
	
	@SuppressWarnings("unchecked")
	public ArrayList<String> ibatisTest() throws SQLException {
		return (ArrayList<String>)sql.queryForList("sql.showtable");
	}
}

spring3 + ibatis 연동완료!

트랜잭션은 제외한 샘플링임 

트랜잭션 설정을 원한다면 mybatis에 트랜잭션 설정 부분을 참고하시길...



2014/07/25 - [스프링연동하기/spring3 mybatis 설정] - 스프링3(Spring3) - mybatis 연동(2) 트랜잭션설정


ibatis용 다중 db접속에 대한 설정


2014/07/28 - [스프링연동하기/spring3 mybatis 설정] - 스프링3(Spring3) - mybatis 연동(3) 다중DB 접속 + 트랜잭션 설정


포스팅을 참고하면 되겠지만 추후에 별도로 ibatis용 다중DB접속에 대한 포스팅을 할 예정




/ibatisTest URL 호출시 화면은 나오지 않을것임

단순 db통신후 데이터를 정상적으로 받을수 있는지 테스트를 하기 위한것일뿐


● 이클립스 콘솔실행 화면





슈퍼맨슈퍼맨슈퍼맨



도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!