Solved

ResultSet persistence

Posted on 2002-03-29
4
441 Views
Last Modified: 2010-05-18
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;
}
0
Comment
Question by:rwinkler
  • 2
4 Comments
 
LVL 18

Accepted Solution

by:
bobbit31 earned 100 total points
ID: 6905456
0
 
LVL 18

Expert Comment

by:bobbit31
ID: 6905463
0
 

Expert Comment

by:rashidkamranbs
ID: 6905502
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
 
LVL 1

Author Comment

by:rwinkler
ID: 6905508
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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now