JDBC Tutorials - Herong's Tutorial Notes
Dr. Herong Yang, Version 2.11

ResultSet Default Type: Forward-only

This section describes ResultSet default type: forward-only, which supports only next() method to move the cursor forward one row at a time.

Another way to move the cursor to the first row on a new ResultSet object is to call res.first(). But first() is not supported on ResultSet objects of the default type, TYPE_FORWARD_ONLY. The following sample program shows you the error message that you will get if you call first() on forward only ResultSet objects:

/**
 * DerbyResultSetFirst.java
 * Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
 */
import java.sql.*;
public class DerbyResultSetFirst {
  public static void main(String [] args) {
    Connection con = null;
    try {
      con = DriverManager.getConnection(
        "jdbc:derby://localhost/TestDB");
      Statement sta = con.createStatement(); 

// Catch the ResultSet object
      ResultSet res = sta.executeQuery("SELECT * FROM Profile");

// first() is not allowed on forward-only ResultSet objects
      res.first();

// Try to get column values
      String firstName = res.getString("FirstName");
      String lastName = res.getString("LastName");

// Close ResultSet
      res.close();

      sta.close();
      con.close();        
    } catch (Exception e) {
      System.err.println("Exception: "+e.getMessage());
    }
  }
}

Run this program to see the error if res.first() is called on forward only ResultSet objects:

Exception: This method should only be called on ResultSet objects 
that are scrol lable (type TYPE_SCROLL_SENSITIVE or 
TYPE_SCROLL_INSENSITIVE).

Sections in This Chapter

What Is ResultSet?

ResultSet Cursor and Scrollability

ResultSet Cursor Initial Position: Before First Row

Retrieving Column Values with getXXX() Methods

ResultSet Default Type: Forward-only

Scrollable ResultSet and Moving Cursor Backward

ResultSet Objects with Update Capability

insertRow() - Inserting New Rows through ResultSet Objects

updateXXX() - Updating Column Values for Row Update or Insert

deleteRow() - Deleting Rows through ResultSet Objects

Dr. Herong Yang, updated in 2007
ResultSet Default Type: Forward-only