개발자가 지정한 SQL, 저장 프로시저와 고급 맵핑을 지원하는 퍼시스턴스 프레임워크.
JDBC로 처리하는 상당 부분의 코드와 파라미터 설정, 결과 맵핑을 지원한다.
Apache project 팀에서 개발한 2.3 까지는 iBatis 였지만,
Google code 팀으로 이동한 2.5 버전 부터는 MyBatis로 명칭이 변경되었고,
명칭 외에도 변경된 점이 꽤 있다.
패키지 내부구조
iBatis : com.ibatis.*
MyBatis : org.apache.ibatis.*
변경 용어
iBatis | MyBatis |
SqlMapConfig | Configration |
sqlMap | Mapper |
sqlMapClient | sqlSession |
resultHandler | SqlSessionFactory |
resultClass | resultType |
parameterMap parameterClass |
parameterType |
rowHandler | resultHandler |
#var# | #{var} |
$var$ | ${var} |
Annotation
sqlMapClientDI 설정 >>> sqlSessionFactory, sqlSessionTemplate Bean 지정
네임스페이스
iBatis : <sqlMap namespace="memberDAO">
MyBatis : <mapper namespace="com.test.test.MemberMapper">
동적 쿼리
iBatis | MyBatis | ||
태그 | 설명 | 태그 | 설명 |
<isEqual> | property 값이 같을 때만 실행 | <if> <choose> <when> <otherwise> 적절히 사용 |
|
<isNotEqual> | property 값이 같지 않을 때만 실행 | ||
<isGreaterThan> | property 값이 비교값보다 클 때 실행 | ||
<isLessEqual> | property 값이 비교값보다 작거나 같을 경우 실행 | ||
<isPropertyAvailable> | property 값이 유효할 경우 실행 | ||
<isNotPropertyAvailable> | property 값이 유효하지 않을 경우 실행 | ||
<isNull> | property 값이 null일 때 실행 | ||
<isNotNull> | property 값이 null이 아닐 때 실행 | ||
<isEmpty> | property 값이 비어있을 때 실행 | ||
<isNotEmpty> | property 값이 비어있지 않을 때 실행 | ||
<isParameterPresent> | parameter가 있을 때 실행 | ||
<isNotParameterPresent> | parameter가 없을 때 실행 | ||
<iterate> | 배열 타입의 파라미터를 받을 때 활용 | <foreach> | 배열 타입의 파라미터를 받을 때 활용 |
<dynamic> | 하위 태그에 일치하는 내용이 존재할 경우 where 절을 붙인다 | <where>, <trim> | 하위 태그에 일치하는 내용이 존재할 경우 where 절을 붙인다. |
<set> | 동적으로 update 구문을 만들 때 사용 | ||
<bind> | 변수를 생성하는 태그 |
'개발일지 > iBatis' 카테고리의 다른 글
UNION / UNION ALL / WITH (0) | 2023.04.04 |
---|---|
DB 커넥션 종료 에러 / validationQuery (0) | 2023.02.22 |
컬럼에 _ 언더바가 있을 경우 쿼리에 값이 들어오지 않는 현상 (0) | 2023.02.08 |
iBatis, myBatis에서 (공백) 문자 비교하기 (0) | 2023.01.26 |
#와 $의 차이 (0) | 2023.01.26 |