MyBatis - HikariCP를 사용하도록 설정하기

TopOfTheHead·2026년 4월 21일

MyBatis / JPA

목록 보기
4/10

기존 MyBatis는 기본 제공하는 PooledDataSource를 사용하도록 설정됨
전역설정 XML파일<dataSource type="POOLED"> 설정 시 Connection Pool을 사용하도록 지정되나, 기본 제공되는 PooledDataSource로 제공.

MyBatisHikariCP를 기본 제공하지 않으므로, 따로 설정을 통해 제공하도록 설정해야한다.
MyBatis가 아닌 HikariCPConnection Pool 생성하도록 교체

XML 파일 정의하기
<dataSource type="자바설정클래스명"> 지정 및 <property name = "별칭" value="com.mysql.cj.jdbc.Driver"/> 설정
▶ 이후 Java설정 파일에서 type="별칭"으로 식별되어 활용됨

type="POOLED"type="자바설정클래스명"으로 지정되었으므로, 해당 설정 클래스에서 반환하는 DataSource 객체Connection Pool로서 활용

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="exp4">
        <environment id="exp4">
            <transactionManager type="JDBC"/>
            <dataSource type="com.uos.mybatis.config.HikariCpDatasourceFactoryConfiguration">
                <property name = "driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name = "url" value="jdbc:mysql://localhost:3304/mybatis_shop"/>
                <property name = "username" value="root"/>
                <property name = "password" value="wjd747"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

JAVA에서 HikariCP 설정 클래스 생성하여 MyBatis에서 Hikari CPConnection을 생성하도록 설정하기
DataSourceFactory 인터페이스를 구현 및 추상메서드 작성
▶ 이후 HikariDataSource 객체를 생성 후 반환

Properties환경변수에 등록된 <dataSource> 태그Java Bean으로 자동으로 의존성 주입하여 참조.

의존성 주입Properties 객체에서 전역설정파일<property name="별칭">별칭을 통해 접속정보를 참조하면서 Hikari Connection Pool ( = Hikari Data Source )를 생성 후 MyBatis로 반환
▶ 이후 MyBatisHikariCP에서 Connection을 가져와서 SqlSession 생성

public class HikariCpDatasourceFactoryConfiguration implements DataSourceFactory {
	// <DataSource> 내 <Property> 태그를 Java Bean으로서 의존성 주입
	private Properties properties; 
	@Override
	public void setProperties(Properties props) {
		this.properties = props;
	}
	@Override
	public DataSource getDataSource() {
      // 전역설정파일의 설정을 기반으로 HikariDataSource 생성
		HikariConfig hikariConfig = new HikariConfig();
		hikariConfig.setDriverClassName(properties.getProperty("driver"));
		hikariConfig.setJdbcUrl(properties.getProperty("url"));
		hikariConfig.setUsername(properties.getProperty("username"));
		hikariConfig.setPassword(properties.getProperty("password"));
   // Hikari Connection Pool을 MyBatis로 반환
		return new HikariDataSource(hikariConfig);
	}
}
profile
공부기록 블로그

0개의 댓글