我在Java中创建了一个函数,每次需要从数据库读取表时都可以重用。我的问题是我不知道如何在return语句后关闭连接。没有这样做,我在mysql中达到最大连接有问题。

这是我的代码:

public static ResultSet readTable(String query) {
    // TODO Auto-generated method stub
    ResultSet rs = null;
    try {
        Class.forName("com.mysql.jdbc.Driver");

        Connection conex = DriverManager.getConnection("jdbc:mysql://localhost:3306/cbr_flexible_db", "root", "");
        Statement st = conex.createStatement();
        rs = st.executeQuery(query);
    }
    catch (Exception e) {
        e.printStackTrace();
    }
    return rs;
}

最佳答案

我想如果您添加一个finally块,这应该可以工作:

 try {
    Class.forName("com.mysql.jdbc.Driver");

    Connection conex = DriverManager.getConnection("jdbc:mysql://localhost:3306/cbr_flexible_db", "root", "");
    Statement st = conex.createStatement();
    rs = st.executeQuery(query);
    return rs;
}
catch (Exception e) {
    e.printStackTrace();
}
finally{
    conex.close();
}

10-07 12:22