본문 바로가기
Programming/Spring

[spring] iBatis, MyBatis Framework 아키텍처

by NAMP 2016. 4. 24.

[spring] iBatis, MyBatis Framework 아키텍처

컬럼의 이름과 동일하게 만들었으므로 자동으로 매핑된다.
어떻게 세팅이 되는지 주의 깊게 본다.
이름만 잘 매핑되면 자동으로 처리된다.

SQL 구문이 XML 문서로 존재한다. 환경이 달라진다.
프레임워크 이므로, 환경 설정 파일이 있다.

2 버전 이하는 iBatis
3 버전 이상은 MyBatis

JDBC

Connection 부터 시작
중복코드 발생

결과값 핸들링을 해야함.
직접 while loop 로 처리

? 에 세팅 작업 필요

Spring

DataSource 라는 환경을 기본으로 함
JDBCTemplate (커넥션을 알아야 함.)

RowMapper 를 사용하여 결과값 처리

세팅을 위한 인터페이스 제공
PreparedStatementSetter

iBatis

DataSource 라는 환경을 기본으로 함
SqlMapClient (생성이 되기 위해서는 DataSource 를 알아야 함)

결과값 처리 resultClass

세팅을 위해서 parameterMap, parameterClass

MyBatis

DataSource 라는 환경을 기본으로 함
SqlSession (생성이 되기 위해서는 DataSource 를 알아야 함)

결과값 처리 result Type

세팅을 위해서 parameterType

JDBC Spring iBatis MyBatis
Connection 부터 시작
중복코드 발생
DataSource 라는 환경을 기본으로 함
JDBCTemplate (커넥션을 알아야 함.)
DataSource 라는 환경을 기본으로 함
SqlMapClient (생성이 되기 위해서는 DataSource 를 알아야 함)
DataSource 라는 환경을 기본으로 함
SqlSession (생성이 되기 위해서는 DataSource 를 알아야 함)
결과값 핸들링을 해야함.
직접 while loop 로 처리
RowMapper 를 사용하여 결과값 처리 결과값 처리 resultClass 결과값 처리 result Type
? 에 세팅 작업 필요 세팅을 위한 인터페이스 제공
PreparedStatementSetter
세팅을 위해서 parameterMap, parameterClass 세팅을 위해서 parameterType

iBatis vs. MyBatis

iBatis MyBatis 비고
com.ibatis.* org.apache.ibatis.* 패키지 구조 변경
SqlMapConfig Configuration 용어변경
sqlMap mapper 용어변경
sqlMapClient sqlSession 구문대체
rowHandler resultHandler 구문대체
resultHandler SqlSessionFactory 구문대체
parameterMap, parameterClass parameterType 속성 통합
resultClass resultType 용어변경
#var# #{var} 구문대체
$var$ ${var} 구문대체
<isEqula>, <isNull> <if> 구문대체


'Programming > Spring' 카테고리의 다른 글

[spring] MyBatis 구현  (0) 2016.04.25
[spring] iBatis 구현  (0) 2016.04.25
[Spring] JDBC 설정  (0) 2016.04.24
[spring] 데이터 접근 디자인 패턴  (0) 2016.04.23
[spring] 다국어 지원  (0) 2016.04.22

댓글