resultset 中的first()、 privious()方法本质上是对移动resultset的指针
指针是否允许移动,在创建statement的时候就已经设置好了,不设置默认只支持顺序,
Statement stmt=con.createStatement(int type,int concurrency);
1、参数 :int type
ResultSet.TYPE_FORWORD_ONLY 结果集的游标只能向下滚动。
ResultSet.TYPE_SCROLL_INSENSITIVE 结果集的游标可以上下移动,当数据库变化时,当前结果集不变。
ResultSet.TYPE_SCROLL_SENSITIVE 返回可滚动的结果集,当数据库变化时,当前结果集同步改变。
2、参数 :int concurrency
ResultSet.CONCUR_READ_ONLY 不能用结果集更新数据库中的表。
ResultSet.CONCUR_UPDATETABLE 能用结果集更新数据库中的表。
3、查询语句
ResultSet re=stmt.executeUpdate(SQL语句);用来更新数据库信息或插入数据
ResultSet re=stmt.executeQuery(SQL语句);用来查询数据库信息
4、当我们使用ResultSet re=stmt.executeQuery(SQL语句)查询后,我们可以使用下列方法获得信息:
previous() 将游标向上移动,该方法返回boolean型数据,当移到结果集第一行之前时,返回false。
beforeFirst 将游标移动到结果集的初始位置,即在第一行之前。
afterLast() 将游标移到结果集最后一行之后。
first() 将游标移到结果集的第一行。
last() 将游标移到结果集的最后一行。
isAfterLast() 判断游标是否在最后一行之后。
isBeforeFirst() 判断游标是否在第一行之前。
ifFirst() 判断游标是否指向结果集的第一行。
isLast() 判断游标是否指向结果集的最后一行。
getRow() 得到当前游标所指向行的行号,行号从1开始,如果结果集没有行,返回0。
absolute(int row) 将游标移到参数row指定的行号。如果row取负值,就是倒数的行数,absolute(-1)表示移到最后一行,absolute(-2)表示移到倒数第2行。当移动到第一行前面或最后一行的后面时,该方法返回false
5、对于返回结果集 ResultSet rs;
取第一条数据:
if(rs.next()) {
}
取所有数据:
while (rs.next()) {
}