【发布时间】:2018-10-14 14:13:30
【问题描述】:
我有 2 个结果集。第一个 ResultSet 包含来自 database1 的 table1 的记录,第二个 ResultSet 包含来自 database2 的 table2 的记录。我需要一个来自resultset1 的记录列表,这些记录在resultSet2 中不存在。为此,我编写了此逻辑,但它不起作用并抛出以下错误。
java.sql.SQLException:只读结果集的无效操作:deleteRow
if ( table1ResultSet != null )
{
while ( table1ResultSet.next() )
{
final String table1Record = table1ResultSet.getString( 1 );
if ( table2ResultSet != null )
{
while ( table2ResultSet.next() )
{
final String table2Record = table2ResultSet.getString( 1 );
if ( table1Record.toString().equalsIgnoreCase( table2Record.toString() ) )
{
table1ResultSet.deleteRow();
break;
}
}
}
}
}
return table1ResultSet;
【问题讨论】:
-
在
table1ResultSet的第一次迭代中,您将table2ResultSet的光标移到了最后一个结果之外。您需要将光标重置回“开始之前” - 当然,您可以只查询第二个数据库以获取table1ResultSet中每一行的结果 -
你真的要从database1的table1中删除记录吗?
-
我想要 table1 中不存在于 table2 的记录列表