当前位置: 首页 > 面试题库 >

JDBC程序在运行时的MySQLNonTransientConnectionException

阎晔
2023-03-14
问题内容

我在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()在任何地方使用方法。我创建了数据库连接,并永远打开它并始终执行查询。我没有地方明确提到连接超时。我无法确定问题所在。

这是我用于数据库连接的代码:

 String driver = PropertyReader.getDriver();
 String url = dbURLPath;
 Class.forName(driver);
 connectToServerDB = DriverManager.getConnection(url);
 connectToServerDB.setAutoCommit(false);

是什么导致该异常?


问题答案:

您必须在配置文件中进行更改或增加数据库的超时时间。如果数据库空闲超过8个小时,则默认情况下将其关闭。

谢谢



 类似资料:
  • 我一直试图使用JDBC在JAVA中创建一个简单的数据库应用程序。到目前为止,我所有的尝试都没有成功,甚至在加载驱动程序。了解我是Java新手,刚刚开始学习。以下是我的步骤: 程序总是给出这个例外: 线程“main”Java.lang.ClassNotFoundException:com.microsoft.sqlServer.jdbc.sqlServerDriver在Java.net.URLCla

  • 因此,在javafx的例子中,当我的pc上有JDK1.7时,这就起到了作用。0,因此这可能是java8中FX的新版本; 我得到了很好的堆栈跟踪 基本上是告诉我这里出了问题 那条线是 所以我可以看出它不喜欢与主控制器有关,所以它必须与加载fxml和控制器有关,对吗?但这就是我的想法的终点 这就是它抛出一切在任何有javaFX经验的人或知道任何java8的变化会这样做的方法??

  • 问题内容: 假设我在同一台计算机上同时运行两个Java程序。这些程序将在单个JVM实例中运行还是在两个不同的JVM实例中运行? 问题答案: 如果您使用命令(从命令行)开始每个命令,它们将作为完全独立的JVM运行。 “程序”可以作为在一个JVM中运行的单独线程启动。

  • 问题内容: 因此,这在我的电脑具有jdk 1.7.0的javafx示例中起作用,因此,这可能是java8中FX的新版本。 我得到了很好的堆栈跟踪 基本上告诉我这里有问题 那条线是 因此我可以弄清楚它与主控制器无关,因此必须与加载fxml和控制器有关?但这就是我的想法的结局 这就是它的方法,它将把所有东西扔给任何有javaFX经验的人,或者知道java8中有任何变化的人会这样做吗? 问题答案: 您没

  • 问题内容: 我需要帮助在特定时间(如下午2点)在服务器上运行Java程序(以索引新文件)。 有人告诉我Java有一些叫做Job的东西,但我不知道该如何使用。我尝试了这个: 但是有了这个程序仍在运行。 如何在指定时间运行程序? 问题答案: 有一个名为Quartz的API ,您的程序可以在其中调度“作业”,并在该时刻运行它。 在给出示例之前,请尝试使用此链接。 编辑:首先,您必须创建一个实现org.q