【发布时间】:2016-04-01 10:02:41
【问题描述】:
我的代码建立 JDBC 连接并重复查询 Microsoft SQL SMS。但是,有时我会收到错误:
“线程“main”java.sql.SQLException 中的异常:I/O 错误:连接重置” 后跟 “原因: java.net.SocketException:连接重置”
我的代码如下所示:
public static void main(String[] args){
...
// Establish JDBC connection
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(URL, USER, PASS);
Statement stmt = conn.createStatement();
...
// Perform SQL query
for(int i=0; i<size; i++)
functionA(stmt); // <--line 62
...
}
public static void functionA(Statement stmt){
String aql = "INSERT INTO...";
stmt.executeUpdate(sql); // <-- line 105
}
我查询数据库是为了测试一些与数据无关的功能。因此,我希望我的程序在抛出异常时自动重新建立连接,这样我就可以让它自行运行。
我的问题是: 1)我可以在try...catch中重新建立JDBC连接吗? 2)如果是这样,要捕获哪个异常以及在哪里捕获它? 3) 我应该在 catch 中放置什么?
【问题讨论】:
-
程序的哪一部分“重复查询”数据库?
-
这是一个围绕functionA的for循环。
-
请将异常堆栈跟踪作为文本而不是屏幕截图。