2019. 7. 16. 17:47ㆍSpring
--------------------------------mybatis----------------------------
mybatis
- SQL Mapper Framework
- ibatis의 후속버전
* ibatis와 mybatis는 서로 호환되지 않는다.
* sql 매핑 방식은 ibatis와 유사하다.
- 특징
- #{프로퍼티} 와 같은 방식으로 매핑한다.
- 다이나믹SQL 작성법이 간단해졌다.
* JSTL의 core태그 작성법과 유사
- parameterType, resultType을 사용한다.
- 네임스페이스가 필수다.
mybatis 주요 구성요소
- 매퍼 파일
SQL 정의하는 파일
- 매퍼 인터페이스
수행할 DB Access작업을 선언해놓은 인터페이스
- mybatis 환경설정 파일
mybatis와 관련된 환경설정 정보를 정의하는 파일
mybatis의 주요 API(컴포넌트)
- 매퍼 인트턴스
- SqlSession
* DB Access작업과 관련된 insert(), update, delete(),
selectOne(), selectList() 메소드 제공
* 스레드 안전하지 않아도, 매번 DB Access 할 때마다 획득하고,
작업이 완료되면 닫아야 된다.
* 매퍼 인터페이스를 구현한 매퍼 인스턴스를 생성한다.
- SqlSessionFactory
* SqlSession객체를 제공하는 객체다.
* 프로그램 전체에서 단 하나만 필요한 객체다.
- SqlSessionFactoryBuilder
* mybatis 환경설정 파일을 읽어서 SqlSessionFactory를 생성한다.
mybatis와 스프링 연동
1. mybatis 라이브러리 의존성 추가
org.mybatis
mybatis
3.5.2
2. mybatis와 스프링 연동을 지원하는 라이브러리 의존성 추가
org.mybatis
mybatis-spring
2.0.2
3. /META-INF/mybatis/mappers 폴더에 매퍼파일을 생성한다.
- SQL 정의
4. /META-INF/mybatis에 mybatis 환경설정 파일을 생성한다.
- 타입별칭, 매퍼파일 등록
5. 패머 인터페이스 정의하기
- 매퍼파일에 정의된 SQL를 실행하는데 사용될 메소드를 선언허기
- public interface xxxDao { ... }
6. mybatis 핵심객체(SqlSessionFactory)를 스프링의 빈으로 등록한다.
org.mybatis.spring.SqlSessionFactoryBean">
7. 매퍼 인터페이스를 스캔해서 매퍼 인스턴스를 생성해서 스프링의 빈으로 등록하는
MapperScannerConfigurere를 스프링의 빈으로 등록한다.
org.mybatis.spring.mapper.MapperScannerConfigurer">
com.sample.mybatis.dao" />
mybatis 설정 파일을 만들경우
mybatis-config.xml
root-context.xml 에 설정을 해준다.
※. 기능 설정
employee.xml
employeeController