- Spring JDBC로 된 오라클 EMP 테이블 예제를 Spring, MyBatis(마이바티스) 변환하는 방법 -스프링실무교육학원
위 Spring JDBC 예제를 MyBatis를 이용한 예제로 수정하려면 아래 예제 작성 후 다음과 같은 순서로 변경 해 보자.
1. pom.xml에 mybatis 관련 부분 추가 후 maven update
<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>
2. empServlet-servlet.xml 하단에
mybatis용 설정 추가(SqlSessionFactoryBean, SqlSessionTemplate)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis/sqlmap-config.xml" />
<property name="mapperLocations" value="classpath:mybatis/mappers/*.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
3. 위 설정 파일의 경로에 맞도록 MyBatis 설정 파일 , 매퍼 XML 파일 생성
[classpath:mybatis/sqlmap-config.xml]
?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias type="model.Emp" alias="emp" />
</typeAliases>
</configuration>
[classpath:mybatis/mappers/emp.xml]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.EmpDao">
<resultMap type="emp" id="emp">
<result property="empno" column="empno" />
<result property="ename" column="ename" />
<result property="sal" column="sal" />
</resultMap>
<select id="getEmpAll" resultMap="emp">select empno,ename,sal from emp</select>
</mapper>
4. DAO 패키지에 EmpDao, EmpDaoImpl 두개의 클래스 작성
[EmpDao.java]
package dao;
import java.util.List;
import org.springframework.dao.DataAccessException;
import edu.biz.web.model.Emp;
public interface EmpDao {
public List<Emp> getEmpAll() throws DataAccessException;
}
[EmpDaoImpl.java]
package dao;
import java.util.List;
import javax.annotation.Resource;
import org.apache.ibatis.session.SqlSession;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;
import model.Emp;
@Repository("empDao")
public class EmpDaoImpl implements EmpDao {
@Resource(name="sqlSession")
private SqlSession sqlSessionTemplate;
public List<Emp> getEmpAll() throws DataAccessException {
EmpDao dao = sqlSessionTemplate.getMapper(EmpDao.class);
List<Emp> empList = null;
empList = dao.getEmpAll();
return empList;
}
댓글 없음:
댓글 쓰기