두개의 차이가 무엇인지 검색을 했는데 ,
큰 차이는 없고 , 버전이 변경되면서 이름을 그냥 변경한것 같다.
Apache project팀에서 google code 팀으로 이동하면서 명칭이 변경
하지만 명칭이 변경되면서 버전이외에 다른것들도 많이 변경된것 같다.
JDK 에 변경점이 있는데 ,
JDK 란 ??
Java Development Kit 자바 개발 키트
개발자들이 Java로 프로그램을 만들 수 있도록 다양한 기능을 제공하는 키트.
컴파일러 , JRE , JVM 등의 도구들을 가지고 있다.
아마 대부분 사람들이 JDK 1.8 버전 사용하시던데 그럼 MyBatis 3.2 이상 버전을 사용하실것 같다.
iBATIS : com.ibatis.
MyBais : org.apache.ibatis.
iBatis | MyBatis |
---|---|
SqlMapConfig | Configration |
sqlMap | Mapper |
parameterMap | parameterType |
resultClass | resultType |
#var# | #{var} |
$var# | ${var} |
<!-- iBATIS pom.xml -->
<dependency>
<groupid>org.apache.ibatis</groupid>
<artifactid>ibatis-sqlmap</artifactid>
<version>2.3.4.726</version>
</dependency>
<!-- MyBatis pom.xml -->
<dependency>
<groupid>org.mybatis</groupid>
<artifactid>mybatis</artifactid>
<version>3.4.5</version>
</dependency>
<dependency>
<groupid>org.mybatis</groupid>
<artifactid>mybatis-spring</artifactid>
<version>1.3.1</version>
</dependency>
라고 되어있지만 ,, 우리 프로젝트를 보게되면 ,
package com.tn.batch.user;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
interface TestRepository {
List<Map<String, Object>> findAll();
}
<?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="com.tn.batch.user.TestRepository">
<select id="findAll" resultType="java.util.HashMap">
SELECT *
FROM TEST
</select>
</mapper>
로 나와있다.
sqlMapClient DI 설정이 필요없어졌다.
Bean id sqlSessionFactory, sqlSessionTemplate만 지정하면 된다.
iBATIS : <sqlMap namespace="memberDAO">
MyBatis : <mapper namespace="com.tn.batch.user.TestRepository">
Dynamic Query
는 상황에 맞게 분기처리 하듯이 쿼리를 날릴수 있게해준다.
iBATIS 에서 사용했던것보다 MyBatis 에선 좀더 간편해졌다.