aph*_*hex 5 java jdbc resultset
我如何迭代ResultSet?我已尝试使用以下代码,但我得到错误java.sql.SQLException:对空结果集的非法操作.
while ( !rs.isLast()) {
rs.next();
int id = rs.getInt("person_id");
SQL.getInstance().getSt().execute("INSERT ref_person_pub(person_id) VALUES(" + id + ")");
}
Run Code Online (Sandbox Code Playgroud)
更新:我发现了问题.我只使用了SQL单例中的一个语句.语句关闭后,不能再次使用.
Bal*_*usC 11
根据JDBC教程:
resultSet = statement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("id");
// ...
}
Run Code Online (Sandbox Code Playgroud)
该ResultSet#next()行动从当前位置,并返回光标向前一行true,如果新的当前行是有效的.因此,while当没有更多行时,循环将自动停止.
如果它应该返回零行或一行而不是多行,那么if改为使用:
resultSet = statement.executeQuery();
if (resultSet.next()) {
int id = resultSet.getInt("id");
// ...
}
Run Code Online (Sandbox Code Playgroud)
这样你就有机会添加一个else.
更新,说和实际问题无关,我在你的代码中看到了更多的潜在问题:首先,你似乎触发了多个相互依赖的查询.这可以更有效地完成.你熟悉SQL连接吗?二,你是不是泄漏了JDBC资源?看起来你正在获取一个声明,但没有掌握它,以便你可以在使用后正确关闭它.请参阅链接的前JDBC教程基本说明如何使用JDBC代码和正常工作这篇文章的几个基本开球例子如何正确使用JDBC.否则,当数据库资源耗尽时,您的应用程序可能会迟早崩溃.
| 归档时间: |
|
| 查看次数: |
8370 次 |
| 最近记录: |