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