logo

Interfície ResultSet

L'objecte de ResultSet manté un cursor apuntant a una fila d'una taula. Inicialment, el cursor apunta a abans de la primera fila.

Per defecte, l'objecte ResultSet només es pot moure cap endavant i no es pot actualitzar.

Però podem fer que aquest objecte es mogui cap endavant i cap enrere passant TYPE_SCROLL_INSENSITIVE o TYPE_SCROLL_SENSITIVE al mètode createStatement(int,int) i també podem fer que aquest objecte es pugui actualitzar mitjançant:

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

Mètodes d'ús habitual de la interfície ResultSet

1) booleà públic següent(): s'utilitza per moure el cursor a la fila següent des de la posició actual.
2) booleà públic anterior(): s'utilitza per moure el cursor a la fila anterior des de la posició actual.
3) booleà públic primer (): s'utilitza per moure el cursor a la primera fila de l'objecte del conjunt de resultats.
4) darrer booleà públic (): s'utilitza per moure el cursor a l'última fila de l'objecte del conjunt de resultats.
5) absolut booleà públic (fila int): s'utilitza per moure el cursor al número de fila especificat a l'objecte ResultSet.
6) relatiu booleà públic (fila int): s'utilitza per moure el cursor al número de fila relatiu de l'objecte ResultSet, pot ser positiu o negatiu.
7) public int getInt(int columnIndex): s'utilitza per retornar les dades de l'índex de columna especificat de la fila actual com a int.
8) public int getInt(String columnName): s'utilitza per retornar les dades del nom de columna especificat de la fila actual com a int.
9) cadena pública getString(int columnIndex): s'utilitza per retornar les dades de l'índex de columna especificat de la fila actual com a cadena.
10) public String getString(String columnName): s'utilitza per retornar les dades del nom de columna especificat de la fila actual com a cadena.

Exemple de conjunt de resultats desplaçables

Vegem l'exemple senzill de la interfície ResultSet per recuperar les dades de la 3a fila.

 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(); }}