쉬운 접근성과 코드의 간결함
JDBC의 모든 기능을 Mybatis가 대부분 제공한다.
복잡한 JDBC코드를 걷어내며 깔끔한 소스코드를 유지할 수 있다.
수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문을 제거할 수 있다.
SQL문과 프로그래밍 코드의 분리
SQL에 변경이 있을 때마다 자바 코드를 수정하거나 컴파일하지 않아도 된다.
다양한 프로그래밍 언어로 구현가능
Java, C#, .NET, Ruby
MyBatis 설정파일(SqlMapConfig.xml) : 데이터베이스의 접속 주소 정보나 Mapping 파일의 경로 등의 고정된 환경정보를 설정한다.
SqlSessionFactoryBuilder : MyBatis 설정 파일을 바탕으로 SqlSessionFactory를 생성한다.
SqlSessionFactory : SqlSession을 생성한다.
SqlSession : 핵심적인 역할을 하는 클래스로서 SQL 실행이다 트랙잭션 관리를 실행한다. SqlSession 오브젝트는 Thread-Safe 하지 않으므로 thread마다 필요에 따라 생성한다.
Mapping 파일(user.xml) : SQL문과 OR Mapping을 설정한다.

MyBatis 설정파일(SqlMapConfig.xml) : VO 객체의 정보를 설정한다.
SqlSessionFactory : MyBatis 설정파일을 바탕으로 SqlSessionFactory를 생성한다, Spring Bean으로 등록해야 한다.
SqlSessionTemplate : 핵심적인 역할을 하는 클래스로서 SQL 실행이나 트랜잭션 관리를 실행한다. SqlSession 인터페이스를 구현하며, Thread-safe 하다. Spring Bean으로 등록해야 한다.
Mapping 파일 (user.xml) : SQL문과 OR Mapping을 설정한다.
Spring Bean 설정 파일 (mybatisBeans.xml) : SqlSessionFactoryBean을 Bean 등록할 때 DataSource 정보와 MyBatis Config 파일정보, Mapping 파일의 정보를 함께 설정한다. SqlSessionTemplate을 Bean으로 등록한다.