Java中是否有一种方法可以仅从结果集而不是从底层数据库中删除行?感谢。
答案 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()
。这将反转您所做的所有删除并使数据库保持原始状态。