JDBC3 -滚动结果集

默认的ResultSet只能向下遍历(next());
可以将其设置成滚动的,既可以向上遍历(previous()),也可以定位到一个指定的物理行号(absolute(int index))

获得滚动结果集

//默认结果集,只能向下执行,并且只能迭代一次
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);

//创建滚动结果集,多两个参数设置
Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
//con.createStatement(int ResultSet, int ResultSetConcurency)

con.createStatement(int ResultSet, int ResultSetConcurency)

  • 第一个参数 ResultSet 结果集类型
    • TYPE_FORWARD_ONLY 默认的,光标只能迁移
    • TYPE_SCROLL_INSENSITIVE 可以滚动,不受底层数据的影响
    • TYPE_SCROLL_SENSITIVE 可以滚动,受底层数据影响
  • 第二个参数 ResultSetConcurency 并发类型
    • CONCUR_READ_ONLY 指示不可更新的ResultSet对象的并发模式
    • CONCUR_UPDATABLE 指示可以更新的ResultSet对象的并发模式

上述参数基本有三种搭配模式

  • 默认的,不可滚动不可更改
    • TYPE_FORWARD_ONLY
    • CONCUR_READ_ONLY
  • 可滚动不可更改
    • TYPE_SCROLL_INSENSITIVE
    • CONCUR_READ_ONLY
  • 可滚动可更改
    • TYPE_SCROLL_INSENSITIVE
    • CONCUR_UPDATABLE

ResultSet可以更改数据库

//第一种通过 Statement执行sql语句执行
st.executeQuery(sql);

//第二种通过ResultSet执行,rs需要指向那一行
rs.updateString("","");//其他更改方式查看JDK文档
rs.updateRow();

你可能感兴趣的:(JDBC3 -滚动结果集)