JDBC核心API-ResultSet

ResultSet接口维护着一个记录光标,该光标指向表的一行。最初,光标指向第一行之前。

注意:默认情况下,ResultSet的光标只能向前移动,并且不可更新。

但是我们可以通过在createStatement(int,int) 方法中传递TYPE_SCROLL_INSENSITIVE或TYPE_SCROLL_SENSITIVE可以使光标向前和向后移动,且还可以通过以下代码使ResultSet对象可更新:

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,  
                     ResultSet.CONCUR_UPDATABLE);  

1 ResultSet接口的常用方法

方法 说明
public boolean next() 用于将光标从当前位置移到下一行。
public boolean previous() 用于将光标从当前位置移到上一行。
public boolean first() 用于将光标移动到结果集对象的第一行。
public boolean last() 用于将光标移动到结果集对象的最后一行。
public boolean absolute(int row) 用于将光标移动到ResultSet对象中的指定行号。
public boolean relative(int row) 用于将光标移动到ResultSet对象中的相对行号,它可以是正数或负数。
public int getInt(int columnIndex) 用于根据列索引查询该列数据。(int类型)
public int getInt(String columnName) 用于根据列名称查询该列数据。(int类型)
public String getString(int columnIndex) 用于根据列索引查询该列数据。(String类型)
public String getString(String columnName) 用于根据列名称查询该列数据。(String类型)

2 可滚动ResultSet的示例

让我们看一下ResultSet接口查询表的第3行记录的示例:

package com.yiidian;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 一点教程网 - http://www.yiidian.com
 */
public class FetchRecord {
    public static void main(String args[])throws Exception{
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
        Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        ResultSet rs=stmt.executeQuery("select * from t_user");

        //获取第3行记录
        rs.absolute(3);
        System.out.println(rs.getString(1)+" "+rs.getString(2)+" "+rs.getString(3));

        con.close();
    }
}

 

推荐好课