今日总结: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,滚动,getString,rs,--,ResultSet,TYPE,absolute 来源: https://www.cnblogs.com/zzhzzhzzh/p/16104543.html