by Dinesh Thakur

Limitations of ResultSet object


Objects become serializable object only when its class implements

interface. We can send only Serializable objects over the network.

i. ResultSet object cannot be send over the network because it is not Serializable object.

ii. ResultSet object does not support beans style programming.

                JDBC RowSets

                JDBC RowSets


RowSet object means it is the object of driver supplied Java class that implements javax.sql.RowSet interface. This RowSet interface is a sub interface of java.sql.ResultSet interface. We have three types of RowSets.

1. Cached RowSet

It is a disconnected RowSet. Behavior wise, it is like insensitive ResultSet object.

2. JDBC RowSet

It is connected RowSet. Behavior wise, it is like sensitive ResultSet object.

3. Web RowSet

It is a connected RowSet. It collects data from xml files.

All RowSet objects are Serializable objects and they support bean style programming (getter and setter method-based programming).

Oracle thin/OCI driver give support for RowSets by supplying the following three

classes in ojdbc14.jar (oracle 10g), orcrs12.jar(oracle 9i), ojdbc6.jaroracle 11g) files.

The classes are

i. oracle.jdbc.rowset.OracleCachedRowSet

ii. oracle.jdbc.rowset.OracleJDBCRowSet

iii. oracle.jdbc.rowset.OracleWebRowSet

Advantages with RowSets

i. Gives simplified programming (allows single object based setter and getter methods oriented programming).

ii. RowSets are serializable objects so they can be sent over the network.

Disadvantages with RowSets

i. Very few drivers support Rowsets.

ii. Allows only select operations.

iii. These are not industry standard.

                JDBC RowSets

Example on CachedRowSet


Source code for CachedRowSet:

import java.sql.*;

import javax.sql.*;

public class CachedRowSetDemo


      public static void main (String args []) throws Exception


                  //instance is created for OracleRowSet class

                  oracle.jdbc.rowset.OracleCachedRowSet crs = new oracle.jdbc.rowset.OracleCachedRowSet ();

                  //setter methods

                  crs.setUrl ("jdbc:oracle:thin:@Jocalhost:1521:orcl");

                  crs.setUsername ("scott");

                  crs.setPqssword ("tiger");

                  crs.setCommand ("select* from college");

                  crs.execute () ;

                  while ( ())


                            System.out.println (crs.getString (1) +" "+crs.getString (2) + " "+crs.getInt(3)); 



                    crs.close ();



crs.setCommand (“select * from college”): Is used to set the command for select query.

crs.execute (): is used to execute all above settled commands.

               JDBC RowSets

Example on JdbcRowSet

Source code for the program:


import java.sql.*;

import javax.sql.*;

import oracle.jdbc.rowset.*;

public class JdbcRowSetDemo


        public static void main (String args [] )throws Exception




                     //instance created for OraCleJDBCRowSet and referenced by RowSet

                     RowSet jrs = new OracleJDBCRowSet ();

                     jrs.setUrl ("jdbc:oracle:thin@localhost:1521:orcl");

                     jrs.setUsername ("scott");

                     jrs.setpassword ("tiger");

                     jrs.setCommand ("select * from college");

                     jrs.execute ();

                     while ( ())


                               System.out.println (jrs.getString (1) +" "+jrs.getString (2) + " "+jrs.getInt (3));


                       jrs.close ();


                catch (Exception e){}


                  JDBC RowSets