如何关闭断开的jdbc连接?

我正在两台服务器之间建立连接(一台运行 jdbc 应用程序,另一台运行 Oracle DB),使用 jdbc 查询几个表。

由于这些服务器位于两个不同的国家,有时两个服务器之间会出现断开连接。

当由于 原因无法建立连接时IO Error: Network adapter could not establish the connection,应用程序可以重试建立连接。但是,一旦建立了连接,然后断开连接,应用程序就会挂起并且不会超时或退出连接。

有人可以帮我关闭或退出此类连接吗?


哆啦的时光机
浏览 137回答 3
3回答

慕少森

使用try-with-resources语句String user = "user";String password = "password";String url = "jdbc:mysql://localhost:3306/database_name";try (Connection connect = DriverManager.getConnection(url, user, password);Statement stmt = connect.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM table;");) {    while (rs.next()) {        // TODO    }} catch (Exception e) {    System.out.println(e);}

紫衣仙女

您可以在块中处理此问题,finally以确保在成功和异常情况下都关闭连接。下面分享示例代码,供大家参考。import java.sql.*;  class MysqlConnectionExample{      public static void main(String args[]){          String jdbcUrl = "jdbc:mysql://localhost:3306/dbName";        String userName = "userName";        String password = "password";        String driverName = "com.mysql.jdbc.Driver";        Connection con= null;        Statement stmt = null;        try{              // Create connection            Class.forName(driverName);              con = DriverManager.getConnection(jdbcUrl, userName, password);              stmt = con.createStatement();              ResultSet rs = stmt.executeQuery("SELECT * FROM employee");              // Iterate over the results            while(rs.next()) {                 System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));              }        }        catch(Exception e){             System.out.println(e);        }          finally{            // Close connection            con.close();        }    }  }

子衿沉夜

如果你使用连接傻瓜,我想这会像你的情况。作为其他答案,我建议使用 'connection.close()'; 如果需要的话,最好添加“trasation”范围。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java