MyBatis는 SQL Mapper의 일종으로 JDBC를 이용해서 DB에 SQL을 실행하는 것에 대한 개별적인 관점에서 좀 더 편하고 관리하기 쉽게 하기 위해 만든 것입니다.
JDBC(Java DataBase Connectivity)
- 관계형 데이터베이스에 접근하여 SQL문을 실행하기 위한 자바 라이브러리(자바에서 제공하는 데이터베이스 프로그래밍 API)
- JDBC는 DB연결에서 부터 쿼리 실행, 트랜잭션관리까지 다 지원하는 라이브러리
MYBatis 특징
- MyBatis가 없을 때는 쿼리소스와 Java소스가 겹치게 되고, 관리가 어려워진다.
- MyBatis는 SQL 쿼리문을 자바코드에서 분리하여 XML형식의 파일로 따로 관리하고, Java소스에서 XML태그의 id만 호출하여 개발의 편리함을 제공한다.
- MyBatis는 XML형식의 쿼리 파일을 저장 및 호출하는 역할을 내부적으로 처리 한다.
- Mybatis는 JDBC의 작업을 간편하게 해주는 프레임워크이다.
전통적인 JDBC 프로그램 |
MyBatis |
직접 Connection을 맺고 마지막에 close() |
자동으로 Connection close() 가능 |
PreparedStatement 직접 생성 및 처리 |
MyBatis 내부적으로 PreparedStatement 처리 |
PreparedStatement의 setXXX() 등에 대한 모든 작업을 개발자가 처리 |
#{prop}와 같이 속성을 지정하면 내부적으로 자동 처리 |
SELECT의 경우 ResultSet 처리 |
리턴 타입을 지정하는 경우 자동으로 객체 생성 및 ResultSet처리 |
MyBatis는 기존의 SQL을 그대로 활용할 수 있고, 진입장벽이 낮은 편이어서 JDBC의 대안으로 많이 사용한다. 스프링 프레임워크의 특징 중 하나는 다른 프레임워크들을 배척하는 대신에 다른 프레임워크들과의 연동을 쉽게 하는 추가적인 라이브러리들이 많다는 것이다.
MyBatis 역시 Mybatis-spring이라는 라이브러리를 통해서 쉽게 연동작업 처리를 할 수 있다.
'코드로 배우는 스프링 웹 프로젝트' 카테고리의 다른 글
스프링 동작과정 - (3) [Request 왔을 때 실행 동작] (0) | 2020.03.15 |
---|---|
스프링 동작 과정 - (1) (0) | 2020.03.14 |
스프링이 동작하면 생기는 일 (0) | 2020.03.08 |