我有一个 Hibernate J2SE Swing 应用程序,我想向用户显示一个 MessageBox,说明当 Internet 连接或网络出现问题时无法建立连接。我知道需要捕获的异常 -
java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
但是 Hibernate 已经在内部处理了这个异常。那么各位有什么建议呢?
您可以实现自己的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