1

我有一个 Hibernate J2SE Swing 应用程序,我想向用户显示一个 MessageBox,说明当 Internet 连接或网络出现问题时无法建立连接。我知道需要捕获的异常 -

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection

但是 Hibernate 已经在内部处理了这个异常。那么各位有什么建议呢?

4

1 回答 1

3

您可以实现自己的ConnectionProvider。基本上,每当 Hibernate 需要数据库连接时,它都会在其配置的 ConnectionProvider 上调用getConnection() 。

您可以创建当前正在使用的 ConnectionProvider 的子类并执行以下操作:

public class MyConnectionProvider extends WhateverConnectionProviderYouAreUsing
  {
      public Connection getConnection()
      {
           try
           {
               return super.getConnection();
           } 
           catch (Exception e)
           {
               // Show message about connection error
           }
       }

在 SessionFactory 配置中,您必须配置自定义 ConnectionProvider ,例如

hibernate.connection.provider_class=your.packagename.MyConnectionProvider 
于 2012-06-07T07:14:44.190 回答