ResultSet のオブジェクトは、テーブルの行を指すカーソルを保持します。最初は、カーソルは最初の行の前を指します。
デフォルトでは、ResultSet オブジェクトは前方にのみ移動でき、更新できません。
ただし、createStatement(int,int) メソッドで TYPE_SCROLL_INSENSITIVE または TYPE_SCROLL_SENSITIVE を渡すことで、このオブジェクトを前後方向に移動させることができます。また、次のようにしてこのオブジェクトを更新可能にすることもできます。
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet インターフェースの一般的に使用されるメソッド
1) パブリックブール値 next(): | カーソルを現在位置から 1 つ隣の行に移動するために使用されます。 |
2) パブリックブール値previous(): | カーソルを現在位置から 1 行前の行に移動するために使用されます。 |
3) パブリックブール値 first(): | カーソルを結果セットオブジェクトの最初の行に移動するために使用されます。 |
4) パブリックブール値 last(): | カーソルを結果セットオブジェクトの最後の行に移動するために使用されます。 |
5) パブリックブール絶対値(int row): | ResultSet オブジェクト内の指定された行番号にカーソルを移動するために使用されます。 |
6) パブリックブール相対(int row): | カーソルを ResultSet オブジェクト内の相対行番号に移動するために使用されます。値は正または負の場合があります。 |
7) public int getInt(int columnIndex): | 現在の行の指定された列インデックスのデータを int として返すために使用されます。 |
8) public int getInt(String 列名): | 現在の行の指定された列名のデータを int として返すために使用されます。 |
9) パブリック文字列 getString(int columnIndex): | 現在の行の指定された列インデックスのデータを文字列として返すために使用されます。 |
10) パブリック文字列 getString(String 列名): | 現在の行の指定された列名のデータを文字列として返すために使用されます。 |
スクロール可能なResultSetの例
3行目のデータを取得するResultSetインターフェースの簡単な例を見てみましょう。
import java.sql.*; class FetchRecord{ public static void main(String args[])throws Exception{ Class.forName('oracle.jdbc.driver.OracleDriver'); Connection con=DriverManager.getConnection('jdbc:oracle:thin:@localhost:1521:xe','system','oracle'); Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=stmt.executeQuery('select * from emp765'); //getting the record of 3rd row rs.absolute(3); System.out.println(rs.getString(1)+' '+rs.getString(2)+' '+rs.getString(3)); con.close(); }}