在return语句后关闭结果集

时间:2015-03-17 18:02:38

标签: java mysql connection return

我在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;
}

2 个答案:

答案 0 :(得分:0)

我想如果你添加一个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();
}

答案 1 :(得分:0)

使用finally块来清理Statement,PreparedStatement,Connection和ResultSet等对象的资源。