struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject RE: Persistence Framework Comparison?
Date Fri, 04 Oct 2002 23:27:35 GMT

> I've always thought of a DAO not as an Adapter pattern as what you are
> describing, but as an external Table Gateway.  BO interfaces and even
> the implementing classes shouldn't need to know how to persist itself or
> even what to persist to (XML, DB, IO).  That is up to the implementing
> Gateway.

Adapter Pattern - I was trying to think of the name and couldn't. Thanks.

> I think a DAO should just extend the functionality of the business
> object, IE add configurable methods to persist, modify, select, etc and
> leave the actual O/R logic up to the database with views, triggers, and
> stored procedures (I wrote a book on this last time someone posted this
> same topic).
> Here's how our open source DAO works:
> Action.execute(ActionForm loginForm)
> {
> DaoBrokerFactory dbf = DaoBrokerFactory.getInstance();
> DaoBroker daoBroker = dbf.createBroker("conf/dao-config.xml");
> Method login = daoBroker.createMethod("login",User.class);
> try
> {
> conn = dataSource.getConnection();
> User actual = (User) daoBroker.selectSingle(loginForm,user,conn);
> if (actual == null) throw new LoginException();
> }
> finally
> {
 > SQL.close(conn);
> }
> }

 Looks very cool! Is this available somewhere?

 But back to my point - if you were to change over to using an EJB server,
 the Action classes would have to change. This short Action class isn't a
 big deal, but if you have long, complex forms that require multiple
 then there can be an advantage to putting an "Adapter" in front of the
 persistence logic.

 The adapter can shorten long Action classes and make them easier to
 read and maintain. But on the other hand, I guess you do have to create
 additional classes to use the adapter pattern, so it's a trade off...

 I think in the end, I prefer the approach that isolates the Action class
 from having to know what kind of persistent store it is using.

 This isn't to take away from the work you've done - it looks great.

 Again, just my views for what they're worth -


This e-mail message (including attachments, if any) is intended for the use
of the individual or entity to which it is addressed and may contain
information that is privileged, proprietary , confidential and exempt from
disclosure.  If you are not the intended recipient, you are notified that
any dissemination, distribution or copying of this communication is
strictly prohibited.  If you have received this communication in error,
please notify the sender and erase this e-mail message immediately.

To unsubscribe, e-mail:   <>
For additional commands, e-mail: <>

View raw message