mybatis vs ibatis 차이점 (예시)
mybatis vs ibatis 차이점
mybatis와 ibatis는 둘다 java객체를 sql 문에 매핑하는 쉬운 방법을 제공하는 java기반 지속성 프레임워크이다.
두 프레임워크 모두 sql 맵을 사용하여 java개체와 sql 문 간 의 매핑을 정의한다.
[차이점]
ex>
id,name 및 email의 세필드가 있는 User 라는 간단한 Java 클래스가 있다고 가정한다.
이 클래스를 동일한 필드가 있는 users라는 sql 테이블에 매핑한다고 하자.
mybatis
<mapper namespace="UserMapper">
<resultMap id="UserResultMap" type="User">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="email" property="email"/>
</resultMap>
<select id="getUserById" resultMap="UserResultMap">
SELECT id, name, email
FROM users
WHERE id = #{id}
</select>
</mapper>
ibatis
<sqlMap namespace="UserSqlMap">
<resultMap id="UserResultMap" class="User">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="email" column="email"/>
</resultMap>
<select id="getUserById" resultMap="UserResultMap">
SELECT id, name, email
FROM users
WHERE id = #value#
</select>
</sqlMap>
두 경우 모두 sql 테이블의 열을 java 클래스의 필드에 매핑하는 결과 맵을 정의한다.
또한 users테이블에서 id로 사용자를 검색하는 select문을 정의한다.
보시다시피 SQL 맵을 정의하는 구문은 MyBatis와 iBATIS 간에 약간 다르다
MyBatis는 XML 또는 주석을 사용하는 반면 iBATIS는 XML을 독점적으로 사용한다
MyBatis는 복잡한 객체 매핑 및 SQL 조인을 정의하는 데 더 많은 유연성을 제공하는 반면
iBATIS는 결과 매핑에 더 간단하고 직접적인 접근 방식을 제공합니다
그리고 ibatis는 jdk 1.4에 사용가능하고 , mybatis는 jdk 1.5이상부터 사용가능하다