JDBC Tutorials - Herong's Tutorial Examples - v3.14, by Herong Yang
ResultSet Cursor Initial Position: Before First Row
This section describes the ResultSet cursor initial position: before first row. next() should be called to move the cursor to the first row.
Right after the ResultSet object is returned from the executeQuery() call, the ResultSet cursor is positioned before the first row. You need to call next() once to move the cursor to the first row. If you missed this call, you will get an error message as shown by this sample program:
/* DerbyResultSetNoNext.java * Copyright (c) HerongYang.com. All Rights Reserved. */ import java.sql.*; public class DerbyResultSetNoNext { 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"); // Skip calling next() // res.next(); // 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.next() is not called after executeQuery():
Exception: Invalid operation at current cursor position.
Table of Contents
JDBC (Java Database Connectivity) Introduction
Installing and Running Derby (Java DB)
Derby (Java DB) JDBC DataSource Objects
Derby (Java DB) - DML Statements
►Derby (Java DB) - ResultSet Objects of Queries
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
Derby (Java DB) - PreparedStatement
Summary of JDBC Drivers and Database Servers