我在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;
}
答案 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等对象的资源。