gpt4 book ai didi

java - 需要 Java 中 ResultSet 的帮助

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

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

ResultSet rs = getValueFormTable();

我正在像这样遍历 ResultSet:

do{
// process data
} while(rs.next());

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

这可能吗?

最佳答案

Suppose there are 10 records and i am in fourth ResultSet Value. There comes the situation that i need to need take one value of the fifth ResultSet again return back to the fourth Resultset. Is that possible in java?

您需要“可滚动的”ResulSet 实例来实现滚动结果集;如果您需要更新以前的结果集,那么您需要可滚动和可更新的结果集(最后一段讨论了可更新的结果集)。通常,ResultSetTYPE_FORWARD_ONLY并且只能使用 next() 方法向前滚动。

您需要创建类型为 TYPE_SCROLL_INSENSITIVEResultSet 实例或 TYPE_SCROLL_SENSITIVE调用其他方法,如 absolute()previous() 来回移动 ResultSet

创建可滚动的 ResultSet 需要您指定 StatementPreparedStatement 对象返回的 ResultSet 的类型,因为默认类型是 TYPE_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.

您可能想要阅读如何在 Connection.createStatement 中指定结果集的类型。 , Connection.prepareStatementConnection.prepareCall方法。

如果您想修改 ResultSet 的内容而不仅仅是从中读取,那么您将需要创建“可更新的”ResultSet。这很容易完成,只需将 ResultSet 并发类型指定为 CONCUR_UPDATABLE .然后您可以调用任何 updateXXX 方法并在它们后面加上 updateRow。更新底层数据源的方法。

关于java - 需要 Java 中 ResultSet 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871641/

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