Hibernate и PostgreSQL: примеры настройки

slide_1Перед тем, как соединяться из с , не забудьте создать пользователя, базу данных и предоставить пользователю права на неё:

Команды выше создают пользователя test с паролем test, создают базу данных test и назначают пользователя владельцем базы. В условиях реального приложения разумеется следует выбрать пароль посложнее.

Использование PostgreSQL непосредственно с Hibernate

Перед тем, как использовать PostgreSQL, необходимо добавить его JDBC драйвер в зависимости maven:

С драйвером PostgreSQL в classpath можно настраивать Hibernate:

JDBC url у PostgresSQL имеет следующий формат: jdbc:postgresql://хост:порт/имябазы, например jdbc:postgresql://127.0.0.1:5432/test. Имя пользователя и пароль передаются отдельными параметрами. Наконец, надо не забыть переключить диалект Hibernate на PostgresqlSQL, что делается в последней строке.

Hibernate, PostgreSQL и пул c3p0

Однако,  одно соединение не очень удобно использовать в реальном приложении. Поэтому настроим пул c3p0 для совместного использования с Hibernate и PostgreSQL.

Для включения c3p0 достаточно передать по меньшей мере один параметр c3p0 в настройки Hibernate:

Остальные параметры остаются такими же, как и для PostgreSQL без c3p0.

Hibernate, PostgreSQL и пул

К сожалению, в Hibernate нет настолько высококачественной поддержки HikariCP, аналогичной c3p0. Поэтому настройка HikariCP требует чуть чуть больше работы.

В первую очередь, конечно же, надо добавить ещё и артефакт HikariCP в зависимости (не забываем про PostgreSQL JDBC драйвер):

Потом необходимо изменить конфигурацию Hibernate для работы с HikariCP:

Все настройки соединения с PostgreSQL переименовываются и к ним добавляется два дополнительных параметра. Вначале в Hibernate настраивается использование HikariCP, затем указывается какой класс использовать для соединения с PostgreSQL.