13. 코드로 배우는 스프링 웹 프로젝트 - [스프링과 DataBase 연동] - MyBatis와 스프링 연동
🍃 MyBatis와 스프링 연동
스프링과 MyBatis를 연동하여 더 빠르게 SQL을 처리할 수 있게 만들어 보자.
MyBatis는 흔히 ‘SQL 매핑(mapping) 프레임워크’로 분류된다.
JDBC 코드의 복잡하고 지루한 작업을 피하는 용도로 사용된다.
💽 JDBC
- 직접 Connection 맺고 마지막에 close()
- PreparedStatement 직접 생성 및 처리
- PreparedStatement의 setXXX() 등에 대한 모든 작업 개발자가 직접 처리
- SELECT의 경우 직접 ResultSet 처리
🐧 MyBatis
- 자동으로 Connection부터 close()까지
- 내부적으로 PreparedStatement 처리
- 리턴 타입을 지정하는 경우 자동으로 객체 생성 및 ResultSet 처리
MyBatis는 기존의 SQL을 그대로 활용할 수 있고 진입장벽이 낮다는 장점이 있다.
초반에 설명했던 스프링 프레임워크의 특징 중 하나인 “다른 프레임워크들과 연동을 쉽게 하는 라이브러리가 많다” 를 기억하는가?
MyBatis 역시 mybatis-spring이라는 라이브러리를 통해 쉽게 연동작업을 처리할 수 있다.
예제에서 사용할 구조는 아래와 같다.

📚 MyBatis 관련 라이브러리 추가
MyBatis와 mybatis-spring을 사용하기 위해 pom.xml 파일에 추가적인 라이브러리를 설정해야 한다.
- spring-jdbc/spring-tx:스프링에서 데이터베이스 처리와 트랜잭션 처리(추가 하지 않으면 에러 발생)
- mybatis/mybatis-spring: MyBatis와 스프링 연동용 라이브러리
👨🏻💻 pom.xml 추가

🏭 SQLSessionFactory
MyBatis에서 가장 핵심적인 객체는 SQLSession과 SQLSessionFactory이다.
SQLSessionFactory : 내부적으로 SQLSession라는 걸 만들어 내는 존재이다.
SQLSession : 자신을 통해 Connection을 생성하거나 원하는 SQL을 전달하고, 결과를 리턴 받는 구조로 작성한다.
👨🏻💻 root-context.xml 추가
스프링에 SQLSessionFactory를 등록하는 작업은 SQLSessionFactoryBean을 이용한다.
이때 주목할 점은 패키지가 MyBatis가 아닌 스프링과 연동 작업을 처리하는 mybatis-spring 라이브러리 클래스이다.

☕️ Java 설정을 이용하는 경우
RoonConfig 클래스에 @Bean을 이용해서 설정한다.

SqlSessionFactoryBean을 이용하여 SqlSession을 사용해 보는 테스트는
기존의 DataSourceTests 클래스에 추가하여 확인한다.
👨🏻💻 DataSourcetests 추가
testMyBatis()는 설정된 SqlSessionFactory 인터페이스 타입의 SqlSessionFactoryBean을 이용해서 생성하고,
이를 이용해서 Connection 까지 테스트한다.
💁🏻♂️ 결과
정상적인 로그가 출력된다.

🧹 최종 정리
- MyBatis는 흔히 ‘SQL 매핑(mapping) 프레임워크’로 분류된다.
- MyBatis 역시 mybatis-spring이라는 라이브러리를 통해 쉽게 연동작업을 처리할 수 있다.
- MyBatis에서 가장 핵심적인 객체는 SQLSession과 SQLSessionFactory이다.
- SQLSessionFactory : 내부적으로 SQLSession라는 걸 만들어 내는 존재이다.
- SQLSession : 자신을 통해 Connection을 생성하거나 원하는 SQL을 전달하고, 결과를 리턴 받는 구조로 작성한다.
- 스프링에 SQLSessionFactory를 등록하는 작업은 SQLSessionFactoryBean을 이용
- SQLSessionFactoryBean 등록 시 MyBatis가 아닌 스프링과 연동 작업을 처리하는 mybatis-spring 라이브러리 클래스로 등록한다.
위 내용은 코드로 배우는 스프링 웹 프로젝트 교재를 참고하여 작성되었습니다.
코드로 배우는 스프링 웹 프로젝트 - YES24
이 책은 Spring Framework(이하 스프링)를 사용해서 말 그대로 ‘웹 프로젝트’를 어떻게 진행하는지를 설명하는 책이다. 웹 프로젝트라고 거창하게 표현하지만, 좀 더 구체적으로는 스프링으로 웹
www.yes24.com