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 сервер и разрешить к нему доступ. Если сервер будет установлен не на локальной машине, требуется изменить его адрес в коде.