본문 바로가기
Spring

[Spring] MyBatis 라이브러리 세팅

by jane.dev 2021. 9. 19.
반응형
MyBatis 프레임 워크 라이브러리를 이용해
JDBC를 이용해 DAO 객체를 생성할 때의 중복 코드들을 걷어내고
가독성을 위한 Java와 SQL문을 분리

 

mvnrepository.com 에서 아래 라이브러리를 찾아 pom.xml에 추가

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.5.6</version>
</dependency>

 

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artif actId>mybatis-spring</artifactId>
	<version>2.0.6</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>

 

MyBatis 의 데이터베이스 액세스 흐름

1. 실행 중 CRUD 요청이 들어올 때마다 SqlSessionFactory 로 SqlSession 객체를 생성

2. SqlSession 객체를 이용해 Connection을 생성하거나 DB요청을 하고 결과값을 받아옴

 

root-context.xml에 SqlSessionFactory를 등록하는 작업

<!-- HikariCP configuration -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
	<constructor-arg ref="hikariConfig"></constructor-arg>
</bean>

<!-- MyBatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"></property>
</bean>

SqlSessionFactory Bean을 이용

MyBatis의 스프링과 연동작업을 처리하는 mybatis-spring의 라이브러리 클래스임을 알 수 있으며, DB연결을 위해 dataSource를 주입

 

테스트 코드

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class OracleConnectionPoolTest {
    @Autowired
    private SqlSessionFactory sqlSessionFactory;
    
    @Test
    public void testMyBatis() {
        try(SqlSession session = sqlSessionFactory.openSession();
            Connection con = session.getConnection();
        ){
            log.info(session);
            log.info(con);
        }catch(Exception e) {
            fail(e.getMessage());
        }
    }
}

SqlSessionFactory를 이용해 생성하고 테스트코드가 정상적으로 실행되는지 확인

 

정상적으로 실행될 경우 위와 같이 ibatis 관련 구문이 출력되는 것을 확인 가능

 

2021.09.14 - [Spring] - [Spring] Mapper 인터페이스와 Mapper.xml

 

[Spring] Mapper 인터페이스와 Mapper.xml

Mapper란 SQL문과 그에 대한 처리를 어떻게할지 정하는 것 MyBatis-spring을 이용해 인터페이스로 메서드를 선언하고 XML파일로 구현 예제 - 생성된 테이블에 SELECT 구문을 이용해 데이터 조회 BoardVO.java

wheneveryouwantsz.tistory.com