可滾動的結果集,滾動
可滾動的結果集,也就就是說我們在讀取資料庫中的記錄時不用逐個逐個的讀取,而可以根據我們的具體需要跳過幾條記錄再進行讀取
所要用到的ResultSet中的兩個屬性:TYPE_SCROLL_INSENSITIVE(對滾動不敏感)。其中scroll譯作滾動,sensitive譯作敏感,insensitive譯作不敏感的。另一個屬性:CONCUR_READ_ONLY(並發訪問時唯讀)。其中concur譯作同時發生,即並發,即當並發訪問結果集的時候只能夠唯讀訪問,也就是只能讀取裡面的內容,不能做更改!
使用方式如下,就是在建立Statement時使用上面的兩個參數,
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
這樣以後,在建立一個結果集(ResultSet)的引用rs之後就可以使用結果集的某些使遊標任意滾動的方法
具體代碼如下:
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:oracle12c", "c##scott",
"tiger");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rs=stmt.executeQuery("select * from test");
rs.next();
System.out.println(rs.getString(1));
System.out.println(rs.isLast());
System.out.println(rs.isAfterLast());
System.out.println(rs.getRow());
rs.previous();
System.out.println(rs.getString(1));
rs.absolute(2);
System.out.println(rs.getString(1));
rs.last() //使遊標指向最後一行記錄
Rs.isLast() //判斷是否指向最後一行記錄
Rs.isAfterLast() //判斷是否指向最行一行記錄的上面一行,即倒數第二行
Rs.getRow() //返回當前遊標所指向的是第幾行
Rs.previous() //使遊標指向當前所指向的行的上一行
Rs.absolute(int x) // 使遊標直接指向第x行