Проверьте соединение с базой данных, используя Hibernate при запуске - PullRequest
3 голосов
/ 02 января 2011

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

Ответы [ 2 ]

3 голосов
/ 02 января 2011

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

Если вы развернуты на сервере приложений Java EE, это будет частью конфигурации пула соединений JNDI. Вы можете попросить его проверить соединения, прежде чем выдавать их с помощью запроса (например, «ВЫБРАТЬ 1 ИЗ ДВОЙНОГО» для Oracle).

Я бы рекомендовал делать это вне вашего приложения. Пусть пул соединений управляет соединениями.

0 голосов
/ 29 декабря 2012

В Hibernate можно настроить расширенный пул соединений, который называется c3p0. Просто укажите параметр конфигурации в файле persistence.xml:

<property name="hibernate.c3p0.testConnectionOnCheckout" value="true"/>

Hibernate попытается получить доступ к необходимым классам. С Maven вы настраиваете:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>4.1.8.Final</version>
</dependency>

Примечание: я не буду игнорировать то, что некоторые говорят, что тестирование соединений перед использованием стоит дорого. Я думаю, что последовательность приложения имеет преимущество. А при выполнении реальных операторов SQL относительная стоимость относительна, даже в простых случаях она составляет менее 10%.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...