您好,我正在编写一个在 Java 中运行并通过 JDBC 与 MySQL 数据库对话的应用程序。我遇到的问题是这个应用程序是一个实时应用程序,在某些时候与数据库的连接是不可避免的。这是代码的草图:
int result = 0;
Statement st = null;
ResultSet rs = null;
System.out.println("Obatining reference to main connection");
Connection conne = Main.connection;
try {
System.out.println("In try");
System.out.println("Creating statement");
st = conne.createStatement();
System.out.println("Obtaining result");
rs = st.executeQuery("Properly constructed and tested sql query");
rs.last();
result = rs.getRow();
System.out.println("Exiting try");
}catch(SQLException se){
se.printStackTrace();
}finally{
System.out.println("In finally");
try { rs.close(); } catch (Exception e) { /* ignored */ }
try { st.close(); } catch (Exception e) { /* ignored */ }
}
return result;
打印获取结果后程序冻结。如果连接处于活动状态,一切运行正常,但我需要保护它免受数据库关闭。我测试这个的方法是在我运行这个方法之前断开与数据库的连接。没有抛出异常,也没有产生错误。一旦它打印出获取结果,程序就会挂起。我希望有人知道如何从这种情况中恢复过来?应用程序再次完美运行,但我需要能够从不可用的数据库中恢复。
更多信息:
断开连接是指我通过 vpn 连接到数据库并关闭 vpn 以使数据库不可用。
有人发帖说 SQL 格式不正确。请允许我澄清一下,这不是实际的 SQL 语句。我宁愿不把实际的陈述放进去,它实际上并不相关,因为任何有效的陈述都会产生同样的不良影响。