Java 在启动时使用Hibernate验证数据库连接

Java 在启动时使用Hibernate验证数据库连接,java,hibernate,Java,Hibernate,我有一个桌面应用程序,我想在其中测试应用程序和数据库之间连接的有效性。在启动我的应用程序时测试这一点的最佳方法是什么?目前,尝试启动事务并捕获异常似乎可以完成这项工作。有更好的方法吗?我认为这不应该是Hibernate或您的代码的工作。它应该内置到您正在使用的连接池中 如果您部署在JavaEE应用服务器上,这将是JNDI连接池配置的一部分。您可以要求it部门先检查连接,然后再通过查询进行分配(例如,对于Oracle,“从双通道中选择1”) 我建议您在应用程序之外进行此操作。让连接池管理连接。可以

我有一个桌面应用程序,我想在其中测试应用程序和数据库之间连接的有效性。在启动我的应用程序时测试这一点的最佳方法是什么?目前,尝试启动事务并捕获异常似乎可以完成这项工作。有更好的方法吗?

我认为这不应该是Hibernate或您的代码的工作。它应该内置到您正在使用的连接池中

如果您部署在JavaEE应用服务器上,这将是JNDI连接池配置的一部分。您可以要求it部门先检查连接,然后再通过查询进行分配(例如,对于Oracle,“从双通道中选择1”)


我建议您在应用程序之外进行此操作。让连接池管理连接。

可以使用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>

org.hibernate
hibernate-c3p0
4.1.8.最终版本
注意:我不会忽视一些人说在使用之前测试连接是昂贵的。我认为应用程序的一致性具有优势。在执行真正的SQL语句时,代价相对较高,即使在简单的情况下也不到10%