Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JDBC:Catch";SQLException:I/O错误:导致连接重置";由「;SocketException:连接重置“;_Java_Sql_Jdbc - Fatal编程技术网

Java JDBC:Catch";SQLException:I/O错误:导致连接重置";由「;SocketException:连接重置“;

Java JDBC:Catch";SQLException:I/O错误:导致连接重置";由「;SocketException:连接重置“;,java,sql,jdbc,Java,Sql,Jdbc,我的代码建立JDBC连接并反复查询Microsoft SQL SMS。但是,有时我会出现以下错误: 线程“main”java.sql.SQLException中的异常:I/O错误:连接重置“,后跟,原因是: java.net.SocketException:连接重置“ 下面是我的代码的样子: public static void main(String[] args){ ... // Establish JDBC connection Class.forName(DRI

我的代码建立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
}
publicstaticvoidmain(字符串[]args){
...
//建立JDBC连接
Class.forName(驱动程序);
Connection conn=DriverManager.getConnection(URL、用户、通行证);
语句stmt=conn.createStatement();
...
//执行SQL查询

对于(int i=0;i,如果要捕获问题中列出的异常,则需要捕获SQLException,例如:

  // Perform SQL query
    for(int i=0; i<size; i++) {
        try {
        functionA(stmt); // <--line 62
        } catch(SQLException e) {
          System.out.println(e.getMessage());
          //You can add here your recovery logic ...
        }
    }

程序的哪个部分“重复查询”数据库?这是一个围绕函数的for循环。请将异常堆栈跟踪作为文本而不是屏幕截图。SocketException不是“原因”吗SQLException的错误消息?你知道我可能会重新建立连接吗?是的,如果你愿意,你甚至可以检查内部异常…这取决于你需要做什么…我希望我的程序不要停止并重新建立连接。任何修复都可以。你可以在catch块中放入恢复逻辑,如果恢复成功后,您可以继续。。。
        } catch(SQLException e) {
          if(e.getCause() instanceof SocketException) {
          //You can add here your recovery logic ...
          }
        }