Настройка c3p0

c3p0 — ещё одна библиотека для создания пулов соединений. От HikariCP её отличает встроенная поддержка кэширования запросов, которая позволяет автоматически переиспользовать prepared statements, увеличивая тем самым производительность.

ComboPooledDataSource

ComboPooledDataSource ds = new ComboPooledDataSource();


ds.setDriverClass("org.postgresql.Driver");
ds.setUser("test");
ds.setPassword("test");
ds.setJdbcUrl("jdbc:postgresql://192.168.75.6/test");

Достаточно создать экземпляр ComboPooledDataSource, установить ему по меньшей мере JDBC url и можно начинать им пользоваться как обычно.

DataSource factory

DataSource rawDs = DataSources.unpooledDataSource(
  "jdbc:postgresql://192.168.75.6/test",
  "test",
  "test");
DataSource ds = DataSources.pooledDataSource(rawDs);

c3p0 поставляется с удобной фабрикой DataSources, которая умеет как строить самые что ни на есть обычные DataSource, так и преобразовывать любые существующие DataSource в пулы соединений.

c3p0 и Spring

И опять, использование c3p0 и Spring JavaConfig штука очевидная. Использование с XML конфигурацией не сильно сложнее:

<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>

Скачать код примера. Для запуска примера требуется установить PostgreSQL сервер и разрешить к нему доступ. Если сервер будет установлен не на локальной машине, требуется изменить его адрес в коде.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *