如何获得结果集中的上一项?

时间:2011-04-03 13:00:20

标签: java mysql netbeans

假设我们有这个查询:

ResultSet result = ("select * from table_name");

现在我们可以从这个表格中获得结果信息

while(result.next())
{
  .
  .
  .
}

但是在这种形式下我们可以继续前进。 现在我想知道结果是否有可能回来?

例如,我们获取信息name='sam', fname='nic'。接下来我想回去再次获取这些信息。

有可能吗?

2 个答案:

答案 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. 绝对
  3. 最后
  4. 是否有助于您导航的方法。

答案 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