스프링3(Spring3) - ibatis 연동하기
간혹가다 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 -> sqlmap 폴더안에 다음 파일을 추가
● resources -> sql 폴더내부에는 쿼리xml 파일들이 존재해야함
샘플파일은 하단에 첨부
※ 각파일들이 추가될때마다 sql-map-config.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통신후 데이터를 정상적으로 받을수 있는지 테스트를 하기 위한것일뿐
● 이클립스 콘솔실행 화면
도움이 되셨다면 공감클릭! 궁금하신점은 댓글!!