목차
1. Apache iBATIS
2. MyBatis
3. JDBC API (Spring JDBC)
4. 총평
SQL 데이터베이스와 객체 간 매핑을 지원해주는 persistence framework
지원 언어 : Java
, .NET
, Ruby
SQL 문을 별도의 XML 문서로 작성하여 프로그램 코드와 분리한 형식
2001년 Clinton Begin
이 개발
2004년 iBATIS 2.0 릴리즈 - 아파치 소프트웨어 재단에 기증, 아파치에서 6년간 운영됨
2010년 iBATIS 3.0 릴리즈 - MyBatis로 개발 프로젝트 이동, 아파치 애틱(Attic) 프로젝트로 분류됨(=더 이상 업데이트 하지 않음)
DAO 패턴이 발전하던 시기
~~Dao
라고 네이밍하는 관례가 많았던 시기ex)
<select id="getProduct" parameterClass="java.lang.Long" resultClass="com.example.Product">
select PROD_ID as id,
PROD_DESC as description
from PRODUCT
where PROD_ID = #value#
</select>
Product resultProduct = (Product) sqlMapClient.queryForObject("getProduct", 123);
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTO Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
<select id="selectBlog" resultType="Blog">
select * from Blog where Id = #{id}
</select>
</mapper>
package org.mybatis.example;
public interface BlogMapper {
@Select("select * from Blog where Id = #{id}")
Blog selectBlog(int id);
}
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
iBATIS | MyBatis | |
---|---|---|
SELECT | SELECT 결과 | SELECT 결과 |
INSERT | NULL | 1 |
UPDATE | 1 | UPDATE 된 행의 개수 |
DELETE | DELETE 된 행의 개수 | DELETE 된 행의 개수 |