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

Connecting JdbcRowSet with a Predefined ResultSet Object

This section describes how to connect a JdbcRowSet object to a database server with a predefined ResultSet object.

Another way to connect a JdbcRowSet object to a database server is to pass a predefined ResultSet object to the JdbcRowSetImpl constructor. Here is a sample sequence of method calls:

// Create a Connection object
  Connection con = DriverManager.getConnection("connection_url");

// Execute a SQL statement to generate a Result object
  Statement sta = con.createStatement();
  ResultSet res = sta.executeQuery("SQL_statement");

// Creating a JdbcRowSet object with a connection object
  JdbcRowSet jrs = new JdbcRowSetImpl(res);

// Ready to retrieve column values
  jrs.next();
  String val = jrs.getString(1)

Here is a sample program that connects a JdbcRowSet object to MySQL server with a predefined ResultSet object:

/**
 * MySqlRowSetResultSet.java
 * Copyright (c) 2007 by Dr. Herong Yang. All rights reserved.
 */
import java.sql.*;
public class MySqlRowSetResultSet {
  public static void main(String [] args) {
    Connection con = null;
    try {

// Create a Connection object
      Class.forName("com.mysql.jdbc.Driver") ;
      con = DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/HerongDB"
        +"?user=Herong&password=TopSecret");

// Execute a SQL statement to generate a Result object
      Statement sta = con.createStatement();
      ResultSet res = sta.executeQuery("SELECT 'Hello world!'");

// Pass the Connection object to the new JdbcRowSet object
      javax.sql.rowset.JdbcRowSet jrs 
        = new com.sun.rowset.JdbcRowSetImpl(res);

// Get the result
      jrs.next();
      System.out.println("Result: "+jrs.getString(1));
      
// Close resources
      jrs.close();
      res.close();
      sta.close();
      con.close();
    } catch (Exception e) {
      System.err.println("Exception: "+e.getMessage());
    }
  }
}

Output of compilation and execution was recorded here:

C:\>javac -cp .;\local\lib\rowset.jar MySqlRowSetResultSet.java

MySqlRowSetResultSet.java:23: 
warning: com.sun.rowset.JdbcRowSetImpl is Sun proprietary API 
and may be removed in a future release
        = new com.sun.rowset.JdbcRowSetImpl(res);
                            ^
1 warning

C:\>java -cp .;\local\lib\rowset.jar;
\local\lib\mysql-connector-java-5.0.7-bin.jar MySqlRowSetResultSet

Result: Hello world!

Sections in This Chapter

Overview of RowSet Objects

Installation of JdbcRowSet Reference Implementation

Connecting JdbcRowSet to Database Servers

Connecting JdbcRowSet with a Connection URL

Connecting JdbcRowSet with a Predefined Connection Object

Connecting JdbcRowSet with a Predefined ResultSet Object

Connecting JdbcRowSet with JNDI Directory Service

JdbcRowSet Query Statement with Parameters

Inserting Rows with JdbcRowSet Objects

Dr. Herong Yang, updated in 2007
Connecting JdbcRowSet with a Predefined ResultSet Object