在java中需要ResultSet的帮助

Din*_*del 1 java jdbc resultset

我正在使用a ResultSet从我的SQL服务器检索数据.代码如下:

ResultSet rs = getValueFormTable();
Run Code Online (Sandbox Code Playgroud)

我正在循环ResultSet这样:

do{
   // process data
} while(rs.next());
Run Code Online (Sandbox Code Playgroud)

假设有10条记录,我处于第四个值ResultSet.出现这种情况,我需要将第五条ResultSet记录中的一个值再次返回到第四条Resultset记录.

那可能吗?

Vin*_*lds 7

假设有10条记录,我在第四个ResultSet值.出现这种情况,我需要将第五个ResultSet的一个值再次返回到第四个Resultset.这可能在java?

您需要"可滚动" ResulSet实例来实现滚动结果集; 如果您需要更新以前的结果集,那么您需要可滚动和可更新的结果集(最后一段讨论可更新的结果集).通常,ResultSets是TYPE_FORWARD_ONLY并且可以仅使用该next()方法在向前方向上滚​​动.

您将需要创建一个ResultSet类的实例TYPE_SCROLL_INSENSITIVETYPE_SCROLL_SENSITIVE调用其他方法,如absolute()previous()移动来回ResultSet.

创建可滚动条件ResultSet需要您指定或对象ResultSet返回的类型,因为默认类型如前所述.演示如何操作的片段如下所示:StatementPreparedStatementTYPE_FORWARD_ONLY

PreparedStatement pStmt = Connection.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = pStmt.executeQuery();
...
// You can now invoke rs.previous(), rs.absolute(n) etc. to move back and forth.
Run Code Online (Sandbox Code Playgroud)

你会想在读了如何在特定的ResultSet的类型Connection.createStatement,Connection.prepareStatementConnection.prepareCall方法.

如果要修改内容ResultSet而不是只读取内容,则需要创建"可更新"的ResultSet.通过将ResultSet并发类型指定为,可以轻松完成此操作CONCUR_UPDATABLE.然后,您可以调用任何updateXXX方法,并使用updateRow方法更新基础数据源.