On 04/11/2010 15:41, Mikolaj Rydzewski wrote:
> 
> On Thu, 4 Nov 2010 10:37:25 -0500, "Propes, Barry L "
> <barry.l.pro...@citi.com> wrote:
>> Not sure if it matters or not, but in your   SponserSummaryDAO
>> method, it appears you establish the rs as null, but don't ever close
>> it? You might specifically try that.
>>
>> And is it necessary to reassign all those variables (connection, rs,
>> pstmt) to null again in those catch blocks?
> 
> One more reason to use well designed utilities like commons-dbutils or
> jdbc-template.
> 

Or at least to use a static method to close the db objects & stop
putting the same boiler plate in all of the finally blocks.


public class DB {

  public static void close(ResultSet obj) {
        if (obj == null)
          return;
        try {
          obj.close();
        }
        catch (SQLException e) {
          // catch or log
          e.printStackTrace();          
        }
  }

  public static void close(Statement obj) {
        if (obj == null)
          return;
        try {
          obj.close();
        }
        catch (SQLException e) {
          // catch or log
          e.printStackTrace();          
        }
  }

  public static void close(Connection obj) {
        if (obj == null)
          return;
        try {
          obj.close();
        }
        catch (SQLException e) {
          // catch or log
          e.printStackTrace();          
        }
  }

}

ResultSet rs = null;
PreparedStatement ps = null;
Connection cn = null;

try {
        // ... do DB stuff
}
catch (SQLException e) {
        // ... log or something
}
finally {
  DB.close(rs);
  DB.close(ps);
  DB.close(cn);
}



p

Attachment: 0x62590808.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to