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

how-to-set-up-java-hibernate-with-mysql-in-eclipse-featured-imageПеред тем, как соединяться из с , не забудьте создать пользователя, базу данных и предоставить пользователю права на неё:

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

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

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

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

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

Hibernate, MySQL и пул c3p0

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

Для этого, кроме MySQL JDBC драйвера,  надо добавить непосредственно c3p0 и библиотеку hibernate-cp30 к зависимостям maven:

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

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

Hibernate, MySQL и пул

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

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

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

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