Обектът на ResultSet поддържа курсор, сочещ към ред от таблица. Първоначално курсорът сочи преди първия ред.
По подразбиране обектът ResultSet може да се премества само напред и не може да се актуализира.
Но можем да накараме този обект да се движи напред и назад, като предадем TYPE_SCROLL_INSENSITIVE или TYPE_SCROLL_SENSITIVE в метода createStatement(int,int), както и можем да направим този обект като актуализираем чрез:
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
Често използвани методи на интерфейса ResultSet
1) публичен булев next(): | се използва за преместване на курсора на следващия ред от текущата позиция. |
2) публично булево предишно(): | се използва за преместване на курсора на един ред преди текущата позиция. |
3) публичен булев първи(): | се използва за преместване на курсора до първия ред в обекта с набор от резултати. |
4) публичен булев last(): | се използва за преместване на курсора до последния ред в обекта за набор от резултати. |
5) публичен булев абсолют (вътрешен ред): | се използва за преместване на курсора до посочения номер на ред в обекта ResultSet. |
6) публичен булев относителен (вътрешен ред): | се използва за преместване на курсора до относителния номер на ред в обекта ResultSet, той може да бъде положителен или отрицателен. |
7) public int getInt(int columnIndex): | се използва за връщане на данните от посочения индекс на колона на текущия ред като int. |
8) public int getInt(String columnName): | се използва за връщане на данните от определено име на колона на текущия ред като int. |
9) публичен низ getString(int columnIndex): | се използва за връщане на данните от посочения индекс на колона на текущия ред като String. |
10) public String getString (String columnName): | се използва за връщане на данните от определено име на колона на текущия ред като String. |
Пример за Scrollable ResultSet
Нека видим простия пример за интерфейс ResultSet за извличане на данните от 3-ти ред.
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(); }}