Total: Today: Yesterday:
개발/JAVA | 2015. 4. 28. 08:38 | Posted by 알 수 없는 사용자


iBatis -> MyBatis


 

 


1       Ibatis에서 MyBatis로 변경된 이유

Ø  Apache project팀에서 google code팀으로 이동하면서 명칭이 변경됨.

 

2       차이점

2.1      Java 요구 버전

Ø    iBatis에서는 JDK 1.4 이상에서 사용 가능 MyBatis에서는 JDK 1.5 이상 사용 가능.

2.2      패키지 내부 구조가 변경되었음.

Ø    ibatis : com.ibatis.*

Ø    MyBatis : org.apache.ibatis.*

2.3      sqlMap.xml 내부 구조가 변경되었음.

Ø    parameterMap 사용 못함. -> parameterType으로 대체.

Ø    dtd가 변경 (“http://mybatis.org/dtd/mybatis-3-mapper.dtd”>

Ø    사용 용어의 변경

SqlMapConfig

Configration

sqlMap

Mapper

resultClass

resultType

 

2.4      MyBatis lib 별도 제공

Ø    Maven Dependency Information 예시

<dependency>

    <groupId>org.mybatis</groupId>

   <artifactId>mybatis</artifactId>

   <version>3.2.2</version>

</dependency>

 

<dependency>

   <groupId>org.mybatis</groupId>

   <artifactId>mybatis-spring</artifactId>

    <version>1.2.0</version>

</dependency>

 

2.5      Annotation 도입

Ø    sqlMapClient DI 설정 불필요

Ø    간편해짐

Ø    Bean id sqlSesstionFactory, sqlSesstionTemplate만 지정하면 됨.

2.6      rowHandler 대체

Ø    xml및 대량 데이터 처리를 위해 사용되었던 rowHandler가 삭제

Ø    rowHandler -> resulthandler로 변경됨

Ø    자바 annotation을 사용하여 xml을 사용하지 않고 자바로만 할 수 있게 됨.

Ø    자바 선언 보다 xml 선언이 우선순위를 가짐.

2.7      네임스페이스 방식 변경

Ø    ibatis : <sqlMap namespace=”User”>

Ø    MyBatis : <mapper namespace=”myBatis.mapper.UserMapper”>

Ø    네임스페이스 사용은 필수, userStatementNameSpace설정 제거

2.8      동적 SQL – XML 엘리먼트

Ø    If, choose(when, otherwise), trim (whre,set), foreach

2.9      동적 SQL – Provider annotation

Ø    @SelectProvider(type=CommentSqlProvider.class, method=”selectCommentByCondition”)

2.10    캐시 지원.

2.11    (스프링 연동모듈) mapper 자동 검색


 

3       변경되거나 추가된 속성들 (종합)

4       iBatis

MyBatis

비고

com.ibatis.*

org.apache.ibatis.*

패키지 구조 변경

SqlMapConfig

Configration

용어변경

sqlMap

mapper

용어변경

sqlMapClient

sqlSession

구문대체

rowHandler

resultHandler

구문대체

resultHandler

SqlSessionFactory

구문대체

parameterMap, parameterClass

parameterType

속성 통합

resultClass

resultType

용어변경

#var#

#{var}

구문대체

$var$

${var}

구문대체

<isEqual> , <isNull>

<if>

구문대체




일 작업하면서 정리하였던거 공유합니다.