OK, so Java isn't my first language, busted... ----- Original Message ----- From: "David Graham" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, June 03, 2003 10:25 AM Subject: Re: [OT] data layer, try-catch-finally, connections
> Setting the conn, rs, and s pointers to null in this method is pointless and > confuses Java newbies. > > David > > > > public static void closeconn (java.sql.Connection conn, > >java.sql.Statement s, java.sql.ResultSet rs) throws java.sql.SQLException { > > try { > > if (rs != null) { > > rs.close(); > > rs = null; > > } > > if (s != null) { > > s.close(); > > s = null; > > } > > if (conn != null) { > > conn.close(); > > conn = null; > > } > > } catch (java.sql.SQLException e) { > > closeconn(conn, s, rs, e); > > } > > } > > > >and if THAT one throws an exception, it calls this: > > > > public static void closeconn (java.sql.Connection conn, > >java.sql.Statement s, java.sql.ResultSet rs, > > java.sql.SQLException e) throws java.sql.SQLException { > > > > if (rs != null) { > > try { > > rs.close(); > > rs = null; > > } catch (java.sql.SQLException rse) { > > e.setNextException (rse); > > rs = null; > > } > > } > > if (s != null) { > > try { > > s.close(); > > s = null; > > } catch (java.sql.SQLException se) { > > e.setNextException (se); > > s = null; > > } > > } > > if (conn != null) { > > try { > > conn.close(); > > conn = null; > > } catch (java.sql.SQLException ce) { > > e.setNextException (ce); > > conn = null; > > } > > } > > throw new java.sql.SQLException (e.getMessage(), e.getSQLState(), > >e.getErrorCode()); > > } > > > >Crazy, perhaps, but it works quite well. > > > >----- Original Message ----- > >From: "Mike Whittaker" <[EMAIL PROTECTED]> > >To: "Struts List" <[EMAIL PROTECTED]> > >Sent: Tuesday, June 03, 2003 10:14 AM > >Subject: [OT] data layer, try-catch-finally, connections > > > > > > > I guess you've all been here, so can you answer this? > > > > > > you have do a 'finally' to ensure you close the connection/release it > >back > > > to the pool. > > > > > > In the controller tier this is easy, get the connection in the > > > Filter/RequestProcessor/Action when whatever returns you can finally > >close > > > it. > > > > > > However this ties it to the controller layer. I want my connections > > > instigated from the business layer. But because so many processes > >require > >a > > > connection I will have identical try,catch,finally block all over the > >place. > > > > > > Any one got a solution to this? > > > > > > Thankyou > > > -- > > > Mike W > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > > _________________________________________________________________ > Protect your PC - get McAfee.com VirusScan Online > http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]