* mybatis
- iBatis(오픈소스 프로젝트)가 구글 코드(http://code.google.com)으로 옮기면서 MyBatis로 명칭이 변경됨
- http://www.mybatis.org
- 쿼리를 매핑하여 데이터 결과를 반환하는 Data Mapper Framework
- Java, .Net 지원
* 특징
- 프로그래밍 코드로부터 SQL 코드를 분리
- 입력 매개변수를 라이브러리 클래스로 전달하고 출력
- 비즈니스 로직 클래스로부터 데이터액세스클래스를 분리
- 트랜잭션 관리 가능
* 사용 방법
mybatis-3.4.1.jar 파일을 WEB-INF/lib 디렉토리에 복사
MybatisService.java와 sqlMapConfig.xml 파일을 Java Resource/src/config 패키지에 복사
sample.xml 파일을 활용하여 SQL 명령어 작성
class MybatisService
package config;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisService {
// SqlSessionFactoryBuilder => SqlSessionFactory
// => SqlSession
//SqlSession 객체 생성기
private static SqlSessionFactory factory;
static {
try {
// Java Resources의 src
Reader r = Resources.getResourceAsReader(
"config/sqlMapConfig.xml");
//SqlSessionFactory 생성기
factory = new SqlSessionFactoryBuilder()
.build(r);
r.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getFactory() {
return factory;
}
}
sqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- xml 지시어 -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 알리아스 설정 -->
<typeAliases>
<!-- typeAlias type="전체경로" alias="별칭" -->
<typeAlias type="emp.dto.EmpDTO" alias="e" />
</typeAliases>
<!-- db연결 참조코드 -->
<environments default="">
<environment id="">
<transactionManager type="JDBC" />
<dataSource type="JNDI">
<property name="data_source"
value="java:comp/env/oraDB" />
</dataSource>
</environment>
</environments>
<!-- 실제 sql query -->
<mappers>
<mapper resource="emp/mapper/emp.xml" />
<mapper resource=
"student/mapper/student.xml" />
<mapper resource=
"student/mapper/dept.xml" />
<mapper resource=
"student/mapper/prof.xml" />
<mapper resource=
"student/mapper/lecture.xml" />
<mapper resource=
"memo/mapper/memo.xml" />
<mapper resource=
"board/mapper/board.xml" />
</mappers>
</configuration>
sample.xml ( emp.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="emp">
<!-- id="태그의 식별자"
resultType="sql 명령어의 리턴타입(레코드의 자료형)"
샵{변수} => 입력매개변수 -->
<select id="empList2"
resultType="e">
select *
from (
select A.*, rownum as rn
from (
select empno, ename
from test01
order by empno
) A
)
where rn between #{start} and #{end}
</select>
<select id="empCount2" resultType="int">
select count(*) from test01
</select>
</mapper>
댓글 ( 4)
댓글 남기기