Clean Code that Works.

퍼시스턴스/iBatis +2

음. 이전 글을 보면
뭐 dtd하고 설정만 조금 바뀌고 사용하는 방법이 거의 똑같지 않느냐..
그럼 버전이 3.0으로 올라간 의미가 없자나!!!!

하지만.
다른 방법이 있다!!

바로 mapper를 사용 하는 방법!!!

이전 ibatis 는
List<Bbs> bbsList = session.selectList( "mybatis3.model.bbs.select");
위와 같은 형식으로 사용했다.

그럼 맵퍼를 사용하면 어찌 되드냐!!
일단 맵퍼 인터 페이스를 생성.


public interface BbsMapper {
 List<Bbs> getBbsList();
 Bbs getBbs(String id);
}

그 후에 사용하는 코드는
bbsMapper.getBbs( "1Ia6C9h6008");
이렇게 하면 땡 !!

@_@;;
좋다. xml설정에서 select id를 불러 드리는 것이 사라졌다.

xml 설정 파일은 아래와 같이 namespace에 맵퍼 인터페이스를 지정해 주면 된다.
음 편한데~~~

<mapper namespace="mybatis3.mappers.BbsMapper">
 <select id="getBbsList" resultType="net.study.spring.model.Bbs">
  SELECT * FROM Bbs
 </select>
 <select id="getBbs" resultType="net.study.spring.model.Bbs" parameterType="string">
  SELECT * FROM Bbs WHERE ID = #{ID}
 </select>
</mapper>

다음 글은 스프링 3와 통합 및 annotation을 사용한 쿼리 사용에 대해서~~


헉!!!
ibatis가 프로젝트 명을 아에 바꿔 버렸다.
mybatis로!!!

하여 홈페이지도 http://ibatis.apache.org/ 이곳에서 http://www.mybatis.org/ 이곳으로 변경 되었다.
버전도 3.0.1 GA까정 나오고.

메일링 리스트에 가입 할려고 했더니 가입 페이지가 안떠서 일 단 쥐쥐.
코드도 다 코드 구글로 옴겨 갔다.
http://code.google.com/p/mybatis/

네임 스페이스 설정도 바뀌고

New sqlMapConfig.xml DTD:

<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">

New sqlMap (.map.xml) DTD:

<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD iBatis Mapper 3.0 //EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

여타 자질 구레 한 것들도 바뀌고.. 여튼 좀 바뀌었다 .. -ㅅ-;;
검색해보니 스프링 3에서는 아직 정식 지원이 안되는거 같은데..


뭐 그래도 테스트는 해봐야 하니.

간단히 코드 살펴 보면.

이게 설정 파일

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "HTTP://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
 <environments default="development">
  <environment id="development">
   <transactionManager type="JDBC"/>
   <dataSource type="POOLED">
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/study?autoReconnect=true"/>
    <property name="username" value="study"/>
    <property name="password" value="study"/>   
   </dataSource>
  </environment>
 </environments>
 <mappers>
  <mapper resource="mybatis3/mappers/TestMapper.xml"/>
 </mappers>
</configuration>

매퍼 설정이 아래와 같이 바뀌었다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD iBatis Mapper 3.0 //EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="mybatis3.model.bbs">
 <select id="select" resultType="net.study.spring.model.Bbs">
  SELECT * FROM Bbs
 </select>
</mapper>

이거슨 테스트 코드.

 @Test
 public void getBbs() throws IOException {
  Reader reader = Resources.getResourceAsReader("mybatis-configTest.xml");
  SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build( reader);
  SqlSession session = sqlMapper.openSession();
  List<Bbs> bbsList = session.selectList( "mybatis3.model.bbs.select");
  for ( Bbs bbs : bbsList) {
   System.out.println(bbs);
  }
  session.close();
 }

응? 빨리 스프링 3하고 통합 해 주셈.