스프링연동하기/spring3 mybatis 설정
스프링3(Spring3) - mybatis 연동(1)
개발로짜
2014. 7. 23. 18:02
이번 포스팅은 spring과 mybatis db 연동을 해볼 예정임
maven에 익숙치 않아서인지 삽질좀 한듯 -0-ㅋㅋㅋ
우선은 pom.xml 에 다음과 같이 dependency들을 추가해주도록 하자
<!-- add maven --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.7</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</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>
이어서 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/db명" /> <property name="username" value="아이디" /> <property name="password" value="패스워드" /> </bean> <!-- SESSIONFACTORY 설정 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- ibatis와 다르게 sql디렉토리에 xml 추가만 해주면 별도추가없이 알아서 xml내의 쿼리 인식 --> <property name="mapperLocations" value="classpath*:sql/**/*.xml" /> </bean> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="sqlSessionFactory" /> </bean>
그리고 resources내에 sql 폴더를 생성 후 다음 파일을 추가해주자
HelloWorldController클래스에 코드 추가
@Autowired private SpringDao dao; @RequestMapping("/queryTest") public void queryTest(){ try { ArrayList<Map<String, Object>> list = dao.queryTest(); if(list != null && list.size() > 0){ for(Map<String, Object> map : list) { Set key = map.keySet(); for (Iterator iterator = key.iterator(); iterator.hasNext();) { String keyName = (String) iterator.next(); String valueName = (String) map.get(keyName); System.out.println(keyName +" = " +valueName); } } } } catch (SQLException e) { System.out.println(e.toString()); } }
com.spring.web.dao 패키지 생성 후 내부에 SpringDao.java 클래스를 생성하도록 하자
package com.spring.web.dao; import java.sql.SQLException; import java.util.ArrayList; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository public class SpringDao { @Autowired private SqlSession sql; @SuppressWarnings("unchecked") public ArrayList<Map<String, Object>> queryTest() throws SQLException { return (ArrayList)sql.selectList("sql.queryTest"); } }
이걸로 jdbc 연동이 끝났다.
완전 심플하지 않은가~~!!
물론 transaction 처리는 제외한 예제이다
위 소스를 실행후 웹페이지에 화면은 나오지 않을것이다.
Console에서 다음 하단 그림과 같이 값이 찍혀 나온다면 정상적으로 출력된다면 db연동은 끝~~
원래는 interface 만들고 implements 받고 해야하는데 귀찮음..
그냥 심플하게 연동만 해보는것임
다음 포스팅은 transaction 관한 설정을 해보도록 하겠음!!