从Java ResultSet中删除行而不是从底层数据库中删除行

时间:2011-06-20 07:47:41

标签: java resultset delete-row

Java中是否有一种方法可以仅从结果集而不是从底层数据库中删除行?感谢。

3 个答案:

答案 0 :(得分:3)

看看CachedRowSet。它允许您创建断开连接的ResultSet并在不影响数据库的情况下运行。

答案 1 :(得分:0)

听起来你正在迭代你的ResultSet并过滤你的行?

我想说,如果可以的话,要么将过滤移动到SQL语句,否则将ResultSet复制到List中,如果你不愿意将rowtype的对象或Map的副本复制,然后调用list.remove(row)as你走。

您无法删除行或更新ResultSet,您必须使用像VAShhh建议的CachedRowSet。

答案 2 :(得分:0)

您可以通过将连接对象上的setAutoCommit()设置为false来解决该问题,例如conn.setAutoCommit(false)

然后执行所有删除操作,之后在连接对象上调用rollback()conn.rollback()。这将反转您所做的所有删除并使数据库保持原始状态。