首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jdb使用resultset的deleterow()带来的困惑!该如何解决

2012-01-10 
jdb使用resultset的deleterow()带来的困惑!代码片断:stmtConn.createStatement(ResultSet.TYPE_FORWARD_O

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的记录仍然存在……

热点排行