ResultSet persistence

I need some way to maintain data from a ResultSet after closing the connection.  In other words, I want something that can get the data from the database, close the connection, then return the results.  If it helps, I'm using an Oracle 8 database.  Any suggestions?

//psuedocode
private ResultSet mymethod(String sql)
{
  Connection conn = getConnection();
  Statement stmt = conn.getStatement();
  ResultSet rs = stmt.execute(sql);
  conn.close();
  return rs;
}
LVL 1
rwinklerAsked:
Who is Participating?
 
rashidkamranbsCommented:
See the RsultSet object must be associated with a valid statement and of course connection object.. by closing connection mean you closed the resultset object..

Just Change Ur Function A little and using ResultSetMetaData before closing your connection put all the data in an sutiable Collection or Map object and return that ArrayList or whatever Collection object you choose .. this way ya would be having Results of Query but ofcourse.. not in the form of ResultSet but another COllection object

0
 
rwinklerAuthor Commented:
EXACTLY what I was looking for!  Thanks!

For archival purposes:

CachedRowSet crs = new CachedRowSet();

Listing 1: Explicit CachedRowSet initialization

<jsp:useBean id="Contacts"
             class="sun.jdbc.rowset.CachedRowSet"
             scope="session">
<%
  // load database driver
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  // initialize our CachedRowSet bean
  Contacts.setUsername("dbuser"); // example userid
  Contacts.setPassword("dbpassword"); // example password
  Contacts.setUrl("jdbc:odbc:ContactDB"); // example DSN
  Contacts.setCommand("SELECT name, telephone from Contacts");
  Contacts.execute();
%>
</jsp:useBean>


OR

<%
  // initialize our CachedRowSet bean using dataSourceName
  // property
  Contacts.setDataSourceName("Databases/ContactsDB/Datasource");
  Contacts.setCommand("SELECT name, telephone from Contacts");
  Contacts.execute();
%>

OR

<%
  // get connection from pool
  InitialContext ctx = new InitialContext();
  javax.sql.DataSource ds =
    (javax.sql.DataSource)ctx.lookup
    ("Databases/ContactsDB/DataSource");
  java.sql.Connection con = ds.getConnection();
  Contacts.setCommand("SELECT name, telephone from Contacts");
  // supply the connection to the RowSet
  Contacts.execute(con);
%>
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.