为了账号安全,请及时绑定邮箱和手机立即绑定

如何关闭断开的jdbc连接?

如何关闭断开的jdbc连接?

哆啦的时光机 2024-01-05 10:08:16
我正在两台服务器之间建立连接(一台运行 jdbc 应用程序,另一台运行 Oracle DB),使用 jdbc 查询几个表。由于这些服务器位于两个不同的国家,有时两个服务器之间会出现断开连接。当由于 原因无法建立连接时IO Error: Network adapter could not establish the connection,应用程序可以重试建立连接。但是,一旦建立了连接,然后断开连接,应用程序就会挂起并且不会超时或退出连接。有人可以帮我关闭或退出此类连接吗?
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

使用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);

}


查看完整回答
反对 回复 2024-01-05
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

您可以在块中处理此问题,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();

        }

    }  

}


查看完整回答
反对 回复 2024-01-05
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

如果你使用连接傻瓜,我想这会像你的情况。作为其他答案,我建议使用 'connection.close()'; 如果需要的话,最好添加“trasation”范围。



查看完整回答
反对 回复 2024-01-05
  • 3 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信