마이바티스란?
- 데이터의 입력, 조회, 수정, 삭제(CRUD)를 보다 편하게 하기 위해 xml로
구조화한 Mapper설정파일을 통해 JDBC를 구현한 영속성 프레임 워크
기존 JDBC를 통해 구현했던 상당 부분의 코드와 파라미터 설정 및
결과 매핑을 xml설정을 통해 쉽게 구현할 수 있게 함
MyBatis API Site : http://www.mybatis.org/mybatis-3/ko
MyBatis 흐름
- 이전 JDBC Template을 통해 SQL을 실행하였다면
MyBatis는 해당 흐름을 전용 라이브러리를 통해 대체하여 동작
MyBatis 동작 구조
MyBatis 연동하기
- 압축 해제 후 mybatis-x.x.x.jar 라이브러리를 프로젝트 내 ‘WEB-INF/lib/’경로에 추가
mybatis-config.xml 작성
- mybatis-config.xml 최상단에 아래와 같이 xml형식을 지정하여 이하의 설정 내용이 mybatis config 설정임을 선언
xml 태그
예시
<properties> 설정 값 활용
- <settings>태그 : MyBatis구동 시 선언할 설정 작성
예시
- <typeAliases> 태그 : MyBatis에서 사용할 자료형의 별칭 선언
예시
<typeAliases>
<typeAlias type="com.sun.mybatis.model.vo.Student" alias = "student"/>
</typeAliases>
- <environments>태그 : MyBatis에서 연동할 DataBase 정보 등록
예시
- <mappers>태그 : 사용하고자 하는 쿼리문이 정의된 mapper파일 등록
예시
*-mapper.xml 작성
- xml 최상단에 아래와 같이 xml형식을 지정하여 이하의 설정 내용이
MyBatis mapper 설정임을 선언
- 이어서 <mapper>태그를 작성하고 외부에서 접근할 수 있는 이름인
namespace속성 기입, 이후 작성될 태그들은 <mapper>태그 안에 기록
tag
- <resultMap>태그 : 조회한 결과를 객체와 Row간의 1:1 매칭이 아닌
원하는 객체의 필드에 담아 반환하고자 할 때 사용
예시
- <select>태그 : SQL의 조회구문을 작성 할 때 사용되는 태그, 해당 쿼리를
외부에서 접근하고자 할 때 namespace.id명을 적어 접근가능
예시
<select>태그 주요 속성
- id : 구문을 찾기 위해 사용될 수 있는 네임스페이스 내 유일한 구분자
- parameterType : 구문에 전달될 파라미터의 클래스 명(패키지 경로 포함)이나 별칭
- resultType : 리턴되는 타입의 패키지 경로를 포함한 전체 클래스 명이나 별칭, collection인 경우 list, arraylist로 설정 가능
- resultMap : 리턴되는 타입의 필드 명이 다를 때 사용하며 직접 이름을 지정하여 매칭
※ resultMap과 resultType은 둘 모두를 사용할 수 없으며 둘 중 하나만 선언해야 함