본문 바로가기

프로그래밍/Spring

spring javaconfig 설정으로 mybatis 와 스프링 연동

mybatis 는 jdbc 코드의 복잡한 작업을 피하는 용도로 많이 사용된다. jdbc는 직접 Connection을 맺고 마지막에 close()를 하면서 PrepareStatement를 직접 생성 및 처리한다. 하지만 Mybatis는 자동으로 커넥션과 클로스 기능을 해준다 


1. 먼저 pom.xml에 Mybatis 관련 라이브러리를 추가해준다.


 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->

<dependency>

    <groupId>org.mybatis</groupId>

    <artifactId>mybatis</artifactId>

    <version>3.4.6</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->

<dependency>

    <groupId>org.mybatis</groupId>

    <artifactId>mybatis-spring</artifactId>

    <version>1.3.2</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-tx</artifactId>

    <version>5.0.7.RELEASE</version>

</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->

<dependency>

    <groupId>org.springframework</groupId>

    <artifactId>spring-jdbc</artifactId>

    <version>5.0.7.RELEASE</version>

</dependency>


여기서 마지막 2개의 버전은 자신의 스프링에 맞는 버전으로 설치하면 된다.


2. RootConfig 클래스에 @Bean을 이용해서 설정한다. SqlSessionFactory는 내부적으로 SqlSession을 만들어 내는 공장인데 개발에서 SqlSession을 통해서 Connection을 생성하거나 원하는 Sql을 전달받고 결과를 리턴받는 구조로 작성하게 된다.


@Bean

public SqlSessionFactory sqlSessionFactory() throws Exception{

SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();

sqlSessionFactory.setDataSource(dataSource());

return (SqlSessionFactory) sqlSessionFactory.getObject();

}