日期:2014-05-18  浏览次数:20756 次

关于通过结果集直接更新数据库的疑问
rs.updateString("姓名","李向阳"); //对结果集做更新操作。 
  rs.updateString("学号","一号"); //对结果集做更新操作。  
  rs.absolute(1);
  rs.updateRow();
  rs.updateString("学号","二号"); //对结果集做更新操作。  
  rs.absolute(2);
  rs.updateRow();
  rs.updateString("学号","四号"); //对结果集做更新操作。  
  rs.absolute(4);
  rs.updateRow(); 
  //插入记录操作开始:
  rs.updateString("姓名","赵刚"); //对结果集做更新操作。 
  rs.updateString("学号","8888");  
  rs.updateInt(3,66);  
  rs.updateInt(4,77);
  rs.updateInt(5,88);
  rs.insertRow();  
  rs=sql.executeQuery("SELECT * FROM students"); //重新返回结果集
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我是一个新手,刚看完JSP教程,觉得看了之后有点疑问,从书上也没找到答案,想问问大家,这个过程是怎么更新的。
书上说调用rs.updateXXX方法对所有的行的例值进行更新操作, rs.updateString("姓名","李向阳"); 是不是对所有的行的姓名字段都更新为了李向阳? rs.updateString("学号","一号"); 是不是对学号字段都更新为了一号?那为什么用rs.absolute(1);rs.updateRow();这两句话只更新了第一行记录吧?前面为什么说是对所有行的例值都更新了呢?既然这个都更新了,那后面rs.updateString("学号","二号"); rs.absolute(2);rs.updateRow();这几句话不是又把所有的例值都更新了吗?不解,请指点一下,先谢谢了



------解决方案--------------------
rs.updateString("学号","一号"); //指定要修改的字段.
rs.absolute(1); //指定修改的行数.
rs.updateRow(); //执行修改


rs.updateInt(5,88); //更新第5列的字段为88
rs.insertRow(); //执行更新
------解决方案--------------------
探讨
rs.updateString("学号","一号"); //指定要修改的字段.
rs.absolute(1); //指定修改的行数.
rs.updateRow(); //执行修改


rs.updateInt(5,88); //更新第5列的字段为88
rs.insertRow(); //执行更新