A> MyBatis
매핑을 도와주는 프레임워크이다.
xml mapper 파일을 통해 이용할 수 있다.
B> spring-mybatis
mybatis 와 스프링을 연동할수 있기 위한 라이브러리
C>SqlSesssionFactory
root-context.xml 에 등록을 한다.
SqlSessionFactory 객체는 MyBatis 의 핵심 객체이다.
SqlSessionFactoryBean 은 내부적으로 MyBatis의 SqlSessionFactory 을 생성한다.
D>Mapper 인터페이스를 이용하기
추상메소드는 있는데 구현할 필요는 없다.
자동으로 만들어 주기 때문이다.
root-context.xml 에 mapper 인터페이스들을 컨테이너에 등록할 필요가 있다.
1
|
<mybatis-spring:scan base-package="mapper가 있는 패키지" />
|
cs |
mapper 인터페이스
1
2
3
4
5
|
public interface TimeMapper {
@Select("select sysdate from dual")
public String getTime();
}
|
cs |
2번째 라인 퍼럼 어노테이션을 통해 쿼리를 날린다.
이때 주의할 것은 ; 을 쓰면 안된다는 것이다.
E> xml을 이용하기
mapper 인터페이스가 있다고 할때
1
2
3
4
5
|
public interface TimeMapper {
public String getTime2();
}
|
cs |
수행할 쿼리 정보를 가진 xml파일을 src/main/resources 하위에 위치한다.
1
2
3
4
5
6
7
8
9
10
11
12
|
<?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="org.zerock.mapper.TimerMapper">
<select id = "getTime2" resultType="String">
select sysdate from dual
</select>
</mapper>
|
cs |
6번 라인을 보면
namespace 는 mapper를 정의한 인터페이스 패키지와 이름
7번의 id는 인터페이스의 추상메소드
resultType 은 리턴 타입이다.
8라인에선 수행시킬 쿼리를 쓴다.
F> !CDATA
xml에서 부등호를 사용하겠다는 의미
즉 쿼리에서 부등호를 사용하려면
<![CDATA[
부등호가 있는 쿼리
]]>
형태로 해야한다.