beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eddie O'Neil" <ekon...@gmail.com>
Subject Re: Idea for JDBC system control
Date Fri, 01 Dec 2006 15:07:41 GMT
Drew--

  Definitely -- this would be a great feature that would help with the
situations you described.   Today, it's not possible to manage the
Connection directly which makes it impossible to share it between two
JdbcControl instances.  It might be possible to just add a method
like:

  public void setConnection(Connection conn)

that if called will short circuit the Connection creation code in the
JdbcControl.

  This might be easy to add to the Control -- feel free to give it a shot.  :)

Eddie


On 11/30/06, Drew Varner <drew.varner@redops.org> wrote:
> I was playing around with an idea for the JDBC system control. The
> ability to pass it a Connection object other than one declared in
> it's annotations.
>
> Here are a couple of use cases:
>
> 1) Integration with other persistence mechanisms. Let's say I have a
> DAO that I can pass a Connection to. I can place the DAO and and JDBC
> Control operations in the same transaction.
>
> Connection conn = JDBCUtils.getConnection();
> conn.setAutoCommit(false);
> myJdbcControl.setExternalConnection(conn);
> myJdbcControl.depositMoney(1000)
> AccountAuditDAO.logDepositTransaction(1000,conn);
> conn.commit();
> conn.close();
>
> 2) Use it to put multiple JDBC Controls in the same db transaction
> (same as above, replace the DAO with another JDBC control)
>
> 3) Make unit testing easier. You can pass a connection to a test
> database into the control during testing and don't have to mess with
> the JNDI setup for out-of-container testing.
>
> 4) Support for non-standard Connection sources. If you are using a
> JDBC Control in a Struts app, you can grab the DataSource via the
> Struts DataSource mechanism.
>
> Setting an external connection would be manipulated by methods, not
> annotations.
>
> public void setExternalConnection(Connection conn);
> public Connection getExternalConnection();
>
> The control implementation would never close the external connection.
>
> Would it be worth adding?
>
> - Drew
>
>
>

Mime
View raw message