본문 바로가기

카테고리 없음

Spring --6.MyBatis

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[

       부등호가 있는 쿼리 

    ]]>

    형태로 해야한다.