ibatis는 초기 버전의 프로젝트 이름이며, mybatis는 iBATIS의 후속 버전
Apache project 팀에서 google code 팀으로 이동하면서 명칭이 변경되었다.
[MyBatis 설명]
데이터베이스와 자바 어플리케이션 간 상호작용을 돕는 ORM프레임워크
개발자가 지정한 SQL, 저장프로시저(쿼리의 집합) 그리고 몇가지 고급 맵핑을 지원하는 퍼시스턴스 프레임워크이다. MyBatis는 JDBC(Java DataBase Connectivity)로 처리하는 상당부분의 코드와 파라미터 설정 및 결과 맵핑을 대신해준다. MyBatis는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO를 맵핑하기 위해 XML과 애노테이션(참조링크 참조)을 사용할 수 있다.
[MyBatis 특징]
- 간단하다
- 자동 맵핑
- 생산성 : 코드의 양이 줄고 설정이 간단하다.
- 성능 : 데이터 접근 속도를 높여주는 Join 맵핑을 한다는 구조적 강점이 있다. 데이터를 가져오는 방식이 다양하여 다양한 전략을 세울 수 있다.
- 유지보수성
- SQL문이 소스 코드로부터 완전 분리
iBatis / MyBatis 차이점
- Java 요구버전 iBatis에서는 JDK 1.4 이상 → MyBatis에서는 JDK 1.5 이상 사용 가능.
- 패키지 내부 구조가 변경 com.ibatis. → org.apache.ibatis.
- sqlMap.xml 내부 구조가 변경되었음.
- parameterMap 사용불가 → parameterType으로 대체
- isEqual -> if 변경
- dtd가 변경 (“http://mybatis.org/dtd/mybatis-3-mapper.dtd”)
- 사용 용어 변경 : SqlMapConfig → Configration / sqlMap → Mapper / -
- Annotation 도입 : sqlMapClient DI 설정 불필요, 간편해짐, Bean id sqlSession
- 자바 annotation을 사용하여 xml을 사용하지 않고 자바로만 할 수 있게 됨.
- 자바 선언 보다 xml 선언이 우선순위를 가짐.
- 네임스페이스 방식 변경 : 네임스페이스 사용 필수, userStatementNameSpace 설정 제거
- 동적 SQL - XML 엘리먼트 : if, choose(when, otherwise), trim (whre, set), foreach
- (스프링 연동모듈) mapper 자동 검색
MyBatis는 라이선스, XML 구성, 자동 매핑, 동적 SQL 작성, 세션 관리 등의 면에서 발전되었다.
출처: https://sambalim.tistory.com/25
https://back-end-developer.tistory.com/entry/ibatis-mybatis-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%B4%9D%EC%A0%95%EB%A6%AC