gpt4 book ai didi

java - 关闭 ResultSets 和 PreparedStatements 的快速修复

转载 作者:行者123 更新时间:2023-11-30 11:25:18 24 4
gpt4 key购买 nike

由于库的使用,我遇到了一些模块接口(interface)问题。

http://technojeeves.com/joomla/index.php/free/59-resultset-to-tablemodel

我必须将结果集对象传递出数据库模块。正如您所想,它不是编程的模块化。所以我做了这样的事情

public ResultSet getEmployee()
{
PreparedStatement pst = null;
ResultSet rs = null;
String sql = "select * from employees";
try
{
pst = conn.PreparedStatement(sql);
rs = pst.executeQuery();
}
catch (SQLException e)
{
OptionPane.showMessageDialog(null, "Database Access Error");
}
return rs;
}

在一些显示模块上,我做了

tblEmp.setModel(DbUtils.resultSetToTableModel(rs));

现在我正忙着完善我的项目以进行交付和突然发现这个帖子。

Where to close java PreparedStatements and ResultSets?

然后开始意识到我所做的一切都是错误的。我不得不从数据库模块中传递出一个“集合”对象。但如您所见,该库不打算以这种方式使用。我该如何解决才能正确关闭所有结果集?谢谢

最佳答案

我建议您考虑使用 CachedRowSet 而不是 ResultSet。事实上你甚至不需要更改方法签名,只需更改方法返回 RowSetProvider.newFactory().createCachedRowSet(rs); 并关闭 rspst 在你的 finally block 中。

我不同意@ElliottFrisch 的建议。这只会混淆 GUI 和数据库代码。

关于java - 关闭 ResultSets 和 PreparedStatements 的快速修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20321899/

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