gpt4 book ai didi

java - 调用另一种方法来获取结果集并正确关闭连接?

转载 作者:行者123 更新时间:2023-11-29 06:00:50 24 4
gpt4 key购买 nike

try{
String query= "select user_name from user";
ResultSet rs = queries.performQuery(query);

while(rs.next()){
System.out.println("User Name :" + rs.getString("user_name"));
}

在另一个类(class)我有这样的事情:

public ResultSet performQuery(String query) throws SQLException
{
try
{
connection = DriverManager.getConnection(sqlUrl,sqlUser,sqlPassword);
stmt = connection.createStatement();
rs = stmt.executeQuery(query);
}

catch(SQLException ex)
{
}

finally{
close(rs);
close(stmt);
close(connection);
}
return rs;
}

现在我收到错误 Operation not allowed after ResultSet closed,这显然是因为我正在关闭 rs/stmt/connection。

我没有带我的代码,所以这只是我的想法,忽略任何语法错误,我希望我的问题仍然足够清楚。

所以我的问题是:

如果您想要一个执行查询的方法,然后在另一个方法中调用它,然后执行 rs.next,关闭结果集/stmt/连接的合适方法是什么?对我来说,关闭它们的 performQuery 是有意义的,但这给了我错误。

最佳答案

如果您正在使用 ResultSet,那么它将需要 Connection 来加载更多行。例如,如果您的查询返回 1000 条记录,首先 ResultSet 将在内存中保存 41 行,然后当您迭代此数字时,它将使用连接加载另一组记录。在您的情况下,我将使用 RowSet for more explanation read this

关于java - 调用另一种方法来获取结果集并正确关闭连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10165009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com