(reposted. Was "DAO and getDataSource" - however that post was made by doing
a reply to another message and simply changing the subject. I didn't realize
that this was thread hijacking. Please accept my apologies, and disregard
the earlier post.)

 

Hopefully this will be a quick question. 

 

I'm using struts 1.2.9 and I need to implement a database connection for my
web application and wanted to use a standard DAO pattern (this is due to the
fact that I will be using connection pooling as well as other datastores to
store application data, and want to decouple the data retrieval
implementation from the business objects as much as possible). I noticed
that struts provides a mechanism for implementing datasource configuration
in the struts-config file and in my online searches I found many examples
that used "getDataSource()" to retrieve the datasource and thereby get a
database connection. However I notice that in the struts documentation it
says: "Ideally, the business logic layer should encapsulate the data access
details, including acquiring a database connection. However, some older
application designs expect that the caller be able to provide a database
connection or DataSource instance. When you need to access a legacy design,
the Struts DataSource manager can make it easy for your Action class to
produce these resources on demand." 

And also - 

"It is preferred that data connectivity be handled directly by the business
classes, usually via JNDI. The Struts DataSource manager should only be used
with legacy business classes that don't provide their own connectivity. When
possible, we strongly recommend use of the standard DAO pattern, so that the
Action classes do not need to know anything about the persitence mechanism.
The DataSource manager is being retained in Struts 1.x for backward
compatibility but may not be retained in Struts 2.x or later."

 

So, should I use the datasource functionality provided in struts, or should
I "roll my own" database connection solution by creating a datasource
factory that can be used to retrieve connections?

 

Thanks,

 

Darren

 

Reply via email to