1 분 소요

📚 C3P0

https://mvnrepository.com/artifact/com.mchange/c3p0/0.10.0

https://www.mchange.com/projects/c3p0/

먼저 pom.xml의 dependencies 태그 안에 다음의 내용을 넣어준다.

<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.10.0</version>
</dependency>

여기서 스프링의 장점을 하나 확인해볼 수 있는데, 여기저기 돌아다니며 설정을 일일이 바꿔줄 필요없이 config.xml에서 기존의 DriverManagerDataSource로 설정된 내용만 지워주고 C3P0로 바꿔주면 되니 매우 간단하다.

config.xml

<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
	<property name="driverClass" value="oracle.jdbc.driver.OracleDriver" />
	<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
	<property name="user" value="user1" />
	<property name="password" value="1111" />
	<property name="initialPoolSize" value="5" />
	<property name="maxPoolSize" value="30" />
</bean>

드라이버 매니저와는 다르게 setter 메서드들의 이름이 약간씩 다르고, poolsize를 조절해서 동시에 연결 가능한 수를 조정할 수 있다. 이외에 DB를 연동하여 사용하는 방법은 동일하다.

📚 Apache Commons DBCP

https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2/2.12.0

https://commons.apache.org/proper/commons-dbcp/

https://commons.apache.org/proper/commons-dbcp/apidocs/org/apache/commons/dbcp2/BasicDataSource.html

pom.xml의 dependencies 태그 안에 다음의 내용을 넣어준다.

<dependency>
	  <groupId>org.apache.commons</groupId>
	  <artifactId>commons-dbcp2</artifactId>
	  <version>2.12.0</version>
</dependency>

마찬가지로 기존의 내용을 Apache Commons DBCP를 생성하는 빈 태그로 바꿔주면 된다.

config.xml

<bean class="org.apache.commons.dbcp2.BasicDataSource" id="dataSource">
	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
	<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
	<property name="username" value="user1" />
	<property name="password" value="1111" />
	<property name="initialSize" value="5" />
	<property name="defaultAutoCommit" value="true" />
	<property name="maxIdle" value="5" />
</bean>

maxIdle 속성은 아무도 커넥션 풀을 사용하지 않아도 5개는 풀을 유지하겠다는 의미이다.

📚 HikariCP

https://mvnrepository.com/artifact/com.zaxxer/HikariCP/5.1.0

https://github.com/brettwooldridge/HikariCP

pom.xml의 dependencies 태그 안에 다음의 내용을 넣어준다.

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.1.0</version>
</dependency>

config.xml

<bean class="com.zaxxer.hikari.HikariConfig" id="hikariConfig">
	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
	<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
	<property name="username" value="user1" />
	<property name="password" value="1111" />
</bean>

<bean class="com.zaxxer.hikari.HikariDataSource" id="dataSource">
	<constructor-arg ref="hikariConfig"></constructor-arg>
</bean>
  

다른 dbcp와는 다르게 bean 태그가 두 개 필요하다.

댓글남기기