假设我们有这个查询:
ResultSet result = ("select * from table_name");
现在我们可以从这个表格中获得结果信息
while(result.next())
{
.
.
.
}
但是在这种形式下我们可以继续前进。 现在我想知道结果是否有可能回来?
例如,我们获取信息name='sam', fname='nic'
。接下来我想回去再次获取这些信息。
有可能吗?
答案 0 :(得分:13)
是的,JDBC支持这一点。您需要可滚动的结果集。
这样的事情:
Statement st = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY
);
ResultSet rs = st.executeQuery("select * from table_name");
然后,您只需使用ResultSet对象rs
即可在结果中移动:
是否有助于您导航的方法。
答案 1 :(得分:2)
创建Statement而不向其传递参数时,默认为 ResultSet.TYPE_FORWARD_ONLY 。
Statement st = con.createStatement();
如果您希望能够向后滚动,请将第一个参数设置为 ResultSet.TYPE_SCROLL_INSENSITIVE 或 ResultSet.TYPE_SCROLL_SENSITIVE 。 (对其他人对数据库的更改不敏感或敏感。)
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
CONCUR_UPDATABLE 将允许您根据需要更新ResultSet,除非您不需要,我在哪种情况下将其设置为 CONCUR_READ_ONLY 。
阅读this。