Java 未知数据库,连接关闭后不允许操作

Java 未知数据库,连接关闭后不允许操作,java,mysql,jdbc,Java,Mysql,Jdbc,我有一个xml文件,用于通过Java类(DB_Conn)获取DB信息和关于数据库的信息 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)。我

我有一个xml文件,用于通过Java类(DB_Conn)获取DB信息和关于数据库的信息

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=新的DB_Conn()

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

Connection conn;
conn=db.getconnection();

我已经关闭了所有连接并正确地放置了try-catch。它工作正常,但当我空闲一段时间,然后刷新页面时,我有时会得到未知的数据库名称“null”在连接关闭异常后,不允许进行任何操作。

可能发生的情况是连接保持打开状态并超时,或者您已关闭连接并需要重新连接

所以当你使用

Connection conn;
conn=db.getconnection();
确保在getConnection中执行以下操作

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

似乎在代码中的某个地方,您正试图在连接关闭后访问它。连接可能由于各种原因而关闭。如果一个连接关闭,你需要重新打开它,或者最好使用一个连接池来为你处理它。所以我可以在DB_Conn public void close_dbConnection()中放置一个方法,抛出异常{if(my_Conn_obj!=null){my_Conn_obj.close()}并用它而不是Conn.close()来关闭我的Conn?你可以这么做。似乎您正在将连接及其功能包装到自己的类中。如果是这种情况,那么您应该删除通过该类进行的所有调用,以保持标准的通话/使用连接的方式。它将使代码更易于理解,因为所有内容都是在用于包装连接的类中处理的