MyBatis란?
MyBatis의 개요와 특징
MYbatis와 Mybatis-Spring의 주요 컴포넌트
MyBatis-Spring 예제
MyBatis란?
- 자바 오브젝트와 SQL문 사이의 자동 Mapping 기능을 지원하는 ORM 프레임워크이다.
(Object relational Mapping)
- MyBatis는 SQL을 별도의 파일로 분리해서 관리하게 해준다.
- 객체-SQL 사이의 파라미터 Mapping 작업을 자동으로 해주기 때문에 많은 인기를 얻고있다.
- 새로우 DB프로그래밍 패러다임을 익혀야하는 부담없다.
- SQL문 그대로 이용하면서 JDBC 코드작성의 불편함도 제거해준다.
- 도메인 객체나 VO객체를 중심으로 개발이 가능한 장점있다.
MyBatis의 특징
쉬운 접근성과 코드의 간결함
- 가장 간단한 퍼시턴스 프레임워크(ORM)
- XML형태로 서술된 JDBC코드라고 생각해도 될만큼 JDBC의 모든 기능을 MyBatis가 대부분 제공한다.
- 복잡한 JDBC코드를 걷어내며 깔끔한 소스코드를 유지할 수 있다.
- 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문을 제거할 수 있다.
SQL문과 프로그래밍 코드의 분리
- SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일 하지 않아도 된다.
- SQL작성과 관리 또는 검토를 DBA와 같은 개발자가 아닌 사람에게 맡길 수도 있다.
다양한 프로그래밍언어로 구현가능
- java,C#, .NET등
MyBatis3와 MyBatis-Spring의 주요 컴포넌트
Application |
O/R |
JDBC |
JDBC |
Persistence |
Modules |
Mapper |
Interfaces |
Implementations |
Layer |
JDBC는 저수준의 API
- JDBC를 MyBatis로 맵핑해서 사용(개발자가 사용편리)한다.
Data Access Layer에서 사용(DAO)
MyBatis3의 주요 컴포넌트
Mybatis설정파일(SqlMapCongif.xml)
- 데이터베이스의 접속 주소 정보나 Mapping파일의 경로(SQL포함한파일)등의 고정된 환경정보를 설정한다.
SqlSession Factory Builder(호출)
- 정보를 읽어온다.
- 읽어온 정보로 SqlSession Factory생성한다.
SqlSession Factory
- 읽어온 정보로 SqlSession 생성한다.
SqlSession(핵심역할)
- 컴포넌트 생성 개발자에게 리턴해준다.
- SQL문을 호출해주는 기능,트랜잭션 관리도 실행한다.
Beans.xml에서 설정해야하는 것.
SqlSessionFactoryBean
SqlSessionTemplate
MyBatis-Spring의주요 컴포넌트 역할이다.
Mybatis 설정파일
sqlMapConfig.xml |
- VO객체의 정보를 설정한다. |
SqlSessionFactoryBean |
- MyBatis설정파일을 바탕으로 SqlSessionFactory를 생성한다. - SpringBean으로 등록해야함 |
SqlSessionTemplate |
- 핵심적인 역할을 하는 클래스로서 SQL실행이나 프랜잭션 관리를 실행한다. - SqlSession 인터페이스를 구현하며, Thread-safe하다(멀티스레드환경에서도 안전하게사용가능) - Sqpring Bean으로 등록해야한다.
|
Mapping파일 |
- SQL문과 OR Mapping을 설정한다. |
Spring Bean |
- SqlSessionFactoryBean을 Bean에 등록할 때 DataSource정보와 MyBatis Config파일정보,Mapping파일의 정보를 함께 설정 - SqlSessionTemplate을 Bean으로 등록
|