본문 바로가기

코드로 배우는 스프링 웹 프로젝트

MyBatis란?

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이라는 라이브러리를 통해서 쉽게 연동작업 처리를 할 수 있다.