× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



If getStreet were null, that would mean that "rs=getStreet.executeQuery()" 
would have thrown a NullPointerException. Besides, the documentation doesn't 
say that "conn.prepareStatement" can return null. If it could return null, the 
documentation would say what that meant.

However the usual way to manage JDBC objects is to close them in a finally 
block, like this:

PreparedStatement getStreet = null;
ResultSet rs = null;
try {
  getStreet = conn.prepareStatement(...);
  rs = getStreet.executeQuery();
  while (rs.next()) {
    ...
  }
} catch(SQLException sqle) {
  ... report the exception somehow
} finally {
  if (rs != null) {
    try {
      rs.close();
    } catch(SQLException sqle) {
    }
  }
  if (getStreet != null) {
    try {
      getStreet.close();
    } catch(SQLException sqle) {
    }
  }
}

In the finally block, which will always be called no matter whether an 
exception occurred or not, the variables can be null because an SQLException 
could have caused them to never be set.

PC2

-----Original Message-----
From: java400-l-bounces@xxxxxxxxxxxx [mailto:java400-l-bounces@xxxxxxxxxxxx] On 
Behalf Of RPower@xxxxxxxxxx
Sent: June 30, 2005 09:32
To: Java Programming on and around the iSeries / AS400
Subject: Re: Help... record locks

I got the code from one of the other developers here.  I'm new to this, so I 
just assumed that it's checking to make sure the preparedstatement opened by 
checking if it was null and to only close it if it was opened. 
Here's the code:

PreparedStatement getStreet =   conn.prepareStatement("SELECT DISTINCT * 
FROM "  + lib   + dmd.getCatalogSeparator() + streetTable       + " WHERE 
"       + strSeq + " = 0"       + " ORDER BY " + orderBy);
rs = getStreet.executeQuery();
while (rs.next()) {
...
}
if (getStreet != null){
        rs.close();
        getStreet.close();
}

So basically, if the prepared statement doesn't execute then I'm leaving open 
the resultset rs?


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.