可滚动的结果集
Statement st = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = st.executeQuery(sql);
rs.beforeFirst()定位到第一行前面; rs.afterLast()定位到最后一行后面;rs.first()定位到第一行;rs.isFirst()判断是否是第一行;rs.last();定位到最后一行rs.isLast()判断是否是最后一行;
rs.absolute(9)指定到具体某一行去;rs.moveToInsertRow();
static void read() throws SQLException{
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try{
conn=jdbcUtils.getConnection();
st=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//两个参数设置结果集为可滚动的、只读的
rs=st.executeQuery("select id ,name,birthday,money from T_Users where id<20");
while(rs.next()){
System.out.println(rs.getInt("id")+" "+rs.getObject("name")+" "+rs.getObject("money"));
}
//rs.beforeFirst()定位到第一行前面; rs.afterLast()定位到最后一行后面;rs.first()定位到第一行;rs.isFirst()判断是否是第一行;rs.last();定位到最后一行rs.isLast()判断是否是最后一行
rs.absolute(5);//具体定位到结果集的第五行
System.out.println("----------------------");
while(rs.previous()){//previous()向前读取记录
System.out.println(rs.getInt("id")+" "+rs.getObject("name")+" "+rs.getObject("money"));
}
}
finally{
jdbcUtils.free(conn, st, rs);
}
}
l可更新的结果集
conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs.updateString("col name", "new value");
rs.updateRow();
具体操作和上述例子差不多。