jdb使用resultset的deleterow()带来的困惑!
代码片断:
stmt=Conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
String sqlsubstr = "select * from street where AreaID= " + 1;
Rs=stmt.executeQuery(sqlsubstr);
try{
while(Rs.next()){
Rs.deleteRow();
}
}catch(Exception e){
System.out.print(e.toString());
}
为什么不能完全清除AreaID等于1的记录,总是隔一个删除一个.请大家帮一下忙?
别使用sql语句和使用记录集哪一个效率更高呢?
------解决方案--------------------while(Rs.next()){
Rs.deleteRow();
}
=============
这样工作的:删除当前行,指针移到下一行,再Rs.next()指针移到下下一行,于是错过了一行
sql语句效率高
------解决方案--------------------当然使用sql语句效率高……
rs.deleteRow()删除当前行,比如说有3条记录,编号1,2,3
rs.next(),指针指向第一行,即记录1
rs.deleteRow(),删除记录1
rs.next(),指针指向第二行,即记录3
…………
…………
最后记录2的记录仍然存在……