this bug is now fixed on xpetstore CSV
> Hi Martin,
> thanks for the help. I wrote my reply to Enrique's mail just before I read
> yours.
> Glad to see that I was on the right track. Just one little question. Why do
> you have
> two finally blocks in the DAO - can't you close both the statement and the
> result set
> in the same finally block?
> cheers,
> Brian
> 
> ----- Original Message -----
> From: "Martin Vilcans" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, June 12, 2003 12:01 PM
> Subject: RE: [JBoss-user] Closing database connections
> 
> 
> > This code is no good. It doesn't close the connection and it doesn't close
> > the PreparedStatement. Depending on what toPage does, it might not close
> the
> > ResultSet either, and even if it does, it's still somewhat ugly to
> allocate
> > a resource in one place and close it somewhere else.
> >
> > I haven't looked at XPetstore, and if this is the standard of the code in
> > that project, I think I won't.
> >
> > Here's more like how I would have done it:
> >
> >
> > //------------- session facade methods-----------------------------
> >
> >     /**
> >      * @ejb.interface-method
> >      * @ejb.transaction
> >      *      type="NotSupported"
> >      */
> >     public Page searchProducts( String key, int start, int count )
> >     {
> >         Connection connection;
> >         try
> >         {
> >             connection = getConnection();
> >             // constructor doesn't take a connection parameter:
> >             ProductDAO dao = new ProductDAO();
> >             // findByKey does instead:
> >             return dao.findByKey(connection, "%" + key + "%", start,
> > count );
> >         }
> >         catch( SQLException sql )
> >         {
> >             throw new EJBException( sql );
> >         }
> >         finally {
> >           connection.close();
> >         }
> >     }
> >
> >
> >
> >     private Connection getConnection()
> >     {
> >         try
> >         {
> >             InitialContext ic = new InitialContext();
> >             DataSource     ds = ( DataSource )ic.lookup(
> > JNDINames.DATASOURCE );
> >             return ds.getConnection();
> >         }
> >         catch( Exception e )
> >         {
> >             // changed from throw new EJBException();
> >             // this aids debugging more
> >             throw new EJBException("Failed to get connection", e);
> >         }
> >     }
> >
> > //------------- DAO method -----------------------------
> >
> >     // removed constructor
> >
> >     // Connection as parameter instead:
> >     public Page findByKey(Connection connection, String key, int start,
> int
> > count )
> >         throws SQLException
> >     {
> >         PreparedStatement stmt = connection.prepareStatement (
> > SQL_FIND_BY_KEY,
> >                 ResultSet.TYPE_SCROLL_INSENSITIVE,
> > ResultSet.CONCUR_READ_ONLY );
> >         try {
> >
> >           stmt.setString ( 1, key );
> >           stmt.setString ( 2, key );
> >           stmt.setString ( 3, key );
> >
> >           ResultSet rs = stmt.executeQuery (  );
> >           try {
> >             return toPage ( rs, start, count );
> >           }
> >           finally {
> >             rs.close();
> >           }
> >         }
> >         finally {
> >           stmt.close();
> >         }
> >     }
> >
> > I haven't compiled or tested this, but I hope you catch my drift.
> >
> > Martin
> >
> >
> >
> > -------------------------------------------------------
> > This SF.NET email is sponsored by: eBay
> > Great deals on office technology -- on eBay now! Click here:
> > http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
> > _______________________________________________
> > JBoss-user mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-user
> >
> 
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by: eBay
> Great deals on office technology -- on eBay now! Click here:
> http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-user
-- 

Herve Tchepannou
mailto:[EMAIL PROTECTED]



-------------------------------------------------------
This SF.NET email is sponsored by: eBay
Great deals on office technology -- on eBay now! Click here:
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to