struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject J2EE DAO Pattern & Connection Pooling (struts-newbie)
Date Fri, 11 Jul 2003 09:55:05 GMT

I'm planning an application for Lotus Domino that (hopefully) will be
ported to Tomcat/Struts too (MySQL/PostgreSQL). I'm trying to apply J2EE
DAO Pattern to hide db specific stuff (testing the concept). J2EE DAO
Pattern implies:

package dao;

import java.sql.Connection;

import dao.interfaces.*;
import dao.mysql.*;

public class MySQLDAOFactory extends DAOFactory {

     private static final String DRIVER = "";
     private static final String DBURL
= "jdbc:mysql://localhost:3306/somedb";

     public static UnifiedConnection getConnection() {
          // how to access Struts connection pooling?

     public Object1DAO getObject1DAO() {
          return new MySQLObject1DAO();

     public Object2DAO getObject2DAO() {
          return new MySQLObject2DAO();

How do I access Struts connection pooling from data access layer? Is it
even possible to implement getConnection at dao level in Struts framework?

In Struts action I would like to write:

Business business = new Business(pk); // create business object and load
data from db

which calls the constructor:

public Business(String pk) {
     DAOFactory factory = DAOFactory.getDAOFactory(DAOFactory.MySQL);
     this.dao = factory.getObject1DAO(); = (Object1VO) dao.load(pk);

But mayby I'm forced to write something like:

DAOFactory factory = DAOFactory.getDAOFactory(DAOFactory.MySQL);
factory.setConnection( new JDBCConnection( struts_pooled_conn ) );
Business business = new Business(factory, pk); // does this brake layer
skipping rule?

Or should I create the connected DAO object  in Struts action and pass it
to the business object? Isn't it braking the layer skipping rule also? I
want to keep my business objects as neutral as possible as they are reused
in a completely different platform.

Btw, I cannot use JDBC to access Lotus Domino (for reasons out of scope) so
I must do something like UnifiedConnection that is being extended by
different connection types (JDBCConnection, DominoConnection). I'm sorry if
this has been asked and answered previously, I just couldn't find any
suitable as Domino makes it more tricky I guess...

Many TIA,

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

View raw message