c3p0 — ещё одна библиотека для создания пулов соединений. От HikariCP её отличает встроенная поддержка кэширования запросов, которая позволяет автоматически переиспользовать prepared statements, увеличивая тем самым производительность.
ComboPooledDataSource
1
2
3
4
5
6
|
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverClass("org.postgresql.Driver");
ds.setUser("test");
ds.setPassword("test");
ds.setJdbcUrl("jdbc:postgresql://192.168.75.6/test");
|
DataSource factory
1
2
3
4
5
|
DataSource rawDs = DataSources.unpooledDataSource(
"jdbc:postgresql://192.168.75.6/test",
"test",
"test");
DataSource ds = DataSources.pooledDataSource(rawDs);
|
c3p0 и Spring
И опять, использование c3p0 и Spring JavaConfig штука очевидная. Использование с XML конфигурацией не сильно сложнее:
1
2
3
4
5
6
7
8
9
10
11
|
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="org.postgresql.Driver" />
<property name="jdbcUrl" value="jdbc:postgresql://192.168.75.6/test" />
<property name="user" value="test" />
<property name="password" value="test" />
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg name="dataSource" ref="dataSource"/>
</bean>
|
Код примера доступен на github. Для запуска примера требуется установить PostgreSQL сервер и разрешить к нему доступ. Если сервер будет установлен не на локальной машине, требуется изменить его адрес в коде.