Mybatis
Java Spring에서 SQL을 더 쉽게 다룰 수 있도록 해주는 프레임워크
자동으로 DB close()를 해주며 어노테이션과 XML을 이용해 SQL을 구성할 수 있다.
pom.xml에 Mybatis 관련 라이브러리 추가 후 Maven Update
...
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
...
root-context.xml에 Mybatis 연동 내용 추가
여기서 SQLSessionFactory는 SQL 세션을 만들고 DB Connection, SQL 등 전달, 결과 리턴을 해준다.
...
<!-- Mybatis 연동 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
</bean>
...
이전 게시글에서 작성했던 HikariCP 테스트 클래스에 아래 내용을 추가하여 수정한다. (최종 클래스 파일)
SqlSession, SqlSessionFactory를 추가로 임포트 해줘야하며
SqlSessionFactory 변수 및 테스트 메소드를 작성해야 한다.
package com.myspring.persistence;
import static org.junit.Assert.fail;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import java.sql.Connection;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {
@Setter(onMethod_ = { @Autowired })
private DataSource dataSource;
@Setter(onMethod_ = { @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());
}
}
@Test
public void testConnection() {
try (Connection con = dataSource.getConnection()){
log.info(con);
} catch(Exception e) {
fail(e.getMessage());
}
}
}
JUnit Test 시 아래 유사한 콘솔 로그가 뜬다면 정상
'Spring' 카테고리의 다른 글
스프링 - 로그 설정 (log4jdbc, log4j2) (0) | 2025.05.20 |
---|---|
스프링 - Mybatis 사용 (Mapper) (0) | 2025.05.20 |
스프링 - 커넥션 풀 설정 (HikariCP) (0) | 2025.05.20 |
스프링 - 오라클 데이터베이스 연동 (0) | 2025.05.18 |
스프링 - 어노테이션 정리 (0) | 2025.05.18 |