JDBC 介绍(八)

ResultSet  More
前几节中我们介绍过利用SQL语句来进行数据库的新增,更新和删除操作,使用executeUpdate()来执行SQL,但是使用excuteUpdate()其实是一个容易出错的动作,如果我们只想针对查询的资料进行一些简单的新增,更新或删除操作,可以有Result的一些方法来执行.
要想使用ResultSet直接进行新增等操作,在建立Statement时必须在createStatement()上指定ResultSet.TYPE_SCROLL_SENSITIVE(或ResultSet.TYPE_SCROLL_INSENSITIVE,如果不想取得更新资料的结果)与ResultSet.CONCUR_UPDATABLE.如
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

假如我们要针对查询结果进行更新操作,先移动游标至想要更新的记录位置,然后使用updateXXX()等方法即可,最后用updateRow()生效操作
ResultSet result=stmt.executeQuery("SELECT * FROM message WHERE name='Michael CHEN'");
result.last();
result.updateString("email", ybugchen@163.com);  //第一个参数字段名称,第二个参数值
result.updateRow();
使用updateXXX()等方法之后,并不会马上对相应字段操作生效,而必须执行完updateRow()方法才会对数据库进行操作,如果在updateRow()前想要取消之前的updateXXX()方法,则可以使用cancelRowUpdates()方法.
如果想要新增记录,则先使用moveToInsertRow()移至新增资料处,指向相应的updateXXX()方法,然后在执行insertRow()即可新增记录.

ResultSet result=stmt.executeQuery("SELECT *FROM message WHERE name='Michael CHEN'");
result.moveInsertRow();
result.updateString("name", "Susan");
result.updateString("email", "Susan@mail.com");
result.updateString("subject", "test");
result.updateString("memo", "This is a test!");

result.insertRow();
result.moveToCurrentRow();
如果想要删除查询的每条记录,将游标移动到该条记录,执行deleteRow()方法
result.last();
result.deleteRow();


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值