我在Java中有一个JDBC MySQL连接。我的程序可以很好地执行简单的查询。
如果我运行同一程序超过10个小时并执行查询,则会收到以下MySQL异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state. at sun.reflect.NativeConstructorAccessorImpl.newInstance0( Native Method) com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed. at sun.reflect.NativeConstructorAccessorImpl.newInstance0( Native Method)
我没有close()在任何地方使用方法。我创建了数据库连接,并永远打开它并始终执行查询。我没有地方明确提到连接超时。我无法确定问题所在。
close()
这是我用于数据库连接的代码:
String driver = PropertyReader.getDriver(); String url = dbURLPath; Class.forName(driver); connectToServerDB = DriverManager.getConnection(url); connectToServerDB.setAutoCommit(false);
是什么导致该异常?
您必须在配置文件中进行更改或增加数据库的超时时间。如果数据库空闲超过8个小时,则默认情况下将其关闭。
谢谢