连接关闭后,未知数据库和禁止操作

时间:2016-04-12 06:34:35

标签: java mysql jdbc

我有一个xml文件,用于通过Java类(DB_Conn)获取数据库信息和数据库。在DB_Conn中我有一个getconnection(),它读取xml文件并启动如下所示的连接

my_conn_obj = DriverManager.getConnection(my_Path.item(0).getNodeValue() + my_DBname.item(0).getNodeValue(), my_User.item(0).getNodeValue(), my_Pass.item(0).getNodeValue());

。在该方法中,我返回一个连接对象(my_conn_obj)。我已经定义它在类的开头有null 然后在一个单独的Java类中,我使用

DB_Conn db = New DB_Conn();

每当我需要/打开连接时,我都会使用

Connection conn;
conn=db.getconnection();

我已经关闭了所有连接,并且已经正确地设置了try。它正常工作,但是当我闲置一段时间然后当我刷新页面时,我有时并不总是得到未知数据库名称“null”并且没有操作在连接关闭异常后允许。

1 个答案:

答案 0 :(得分:2)

可能发生的事情是连接处于打开状态并且超时,或者您已将其关闭并需要重新连接。

所以当你使用

Connection conn;
conn=db.getconnection();

确保在getConnection中执行类似

的操作
public Connection getConnection() {
  if (classRefToConnection == null || classRefToConnection.isClosed()) {
    //RE create or connect the connection before returning
  }
}