今日总结:JDBC--ResultSet中的滚动和更新

2022/4/5 23:49:06

本文主要是介绍今日总结:JDBC--ResultSet中的滚动和更新,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

对于preparedstatement 的格式,如下:

PreparedStatement pstmt = conn.prepareStatement(sql, ResultType,ResultSetConcurrency);

ResultType

ResultSet用来定位行的方法有,next(),  last(), absolute(), previous(), afterLast()等等。

支持absolute(), previous(), afterLast()等方法的结果集,称为可滚动结果集。

ResultSetType支持三种取值,

  • ResultSet.TYPE_FORWARD_ONLY, 只能向前移动(JDK1.4以前的默认值)
  • ResultSet.TYPE_SCROLL_INSENSITIVE, 可滚动,但是底层数据的改变不会影响结果集
  • ResultSet.TYPE_SCROLL_SENSITIVE, 可滚动,底层数据的改变会影响结果集

ResultSet.type2

resultSetConcurrency有两种取值

  • ResultSet.CONCUR_READ_ONLY,只读的并发模式(默认)
  • ResultSet.CONCUR_UPDATABLE,可更新的并发模式

另外,可更新的结果集还需要满足两个条件,

  • 所有数据都来自一个表;
  • 选出的数据集必须包含主键列

要通过结果集更新数据库,只需要调用ResultSet对象的updateXxx(index, value)方法修改和updateRow()方法提交即可

 

 for (int i = rowCount; i > 0 ; i--) {
     rs.absolute(i);      
     System.out.println("打印第 "+i+" 行: "+rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3));
            //修改当前行,第2列和第3列的值               
     rs.updateString(2, "学生名"+i);
     rs.updateString(3, "学生名"+(i+1));
            //提交修改
     rs.updateRow();      
    }


这篇关于今日总结:JDBC--ResultSet中的滚动和更新的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程