一个关于数据库连接池对象放置位置的问题

本人初学jsp+servlet+javabean。认同设计的松耦合的重要性。关于持久层和业务层的设计如下:
首先有一个通用的操作数据库的bean,该bean有一个datasource成员变量ds和一些执行sql语句的方法,这些方法有一个connection局部变量conn,接受sql和Domain Model对象标识等相关参数,根据Model对象标识返回相应的结果集对象。每个方法中有conn=ds.getConnection()语句。(因为考虑事务回滚和多线程将conn声明为局部变量)
然后对每个Domain Model,有一个Servcie Layer对象,或者叫工具bean,业务代理接口。用来完成业务对象的相关操作。其中很多数据库相关的操作要调用通用的数据库操作bean来完成。
最后比如在struts的action中或其他地方调用这个工具bean。
问题是:每个工具bean都new一个通用的数据库操作bean,从而要声明(引用?)一个datasource对象,是否有问题?还是至始至终只有一个datasource对象?
不太明白,望大家不吝帮助。谢谢!

因为业务代理接口要通过调用通用的数据库操作bean完成很多数据库相关的操作.所以要new一个通用的数据库操作bean。
当然可以把通用的数据库操作bean放在application作用域。不过感觉又不好。我想知道我上面的担心是否成立!我如何在IDE中验证我的想法呢?

知道了 将ds定义成static就可以了

还可以用单件模式

说到底,这是一个关于领域模型的架构问题。
serveice--->DAO--->domain object
只不过我的DAO调用的是一个自制通用数据库bean实现持久层,而不是用的hibernate之类的框架。
我的理解,通过jndi查找的datasource应该在通用数据库bean中声明和初始化。然后在application listener 中实例化通用数据库bean到application作用域。
serveice和DAO应该也是整个应用只有一个实例,符合单间模式。不过简单的处理可以全部只在application listener 中实例化。
不知道这样的处理好不好?

>serveice和DAO应该也是整个应用只有一个实例,符合单间模式。
需要小心,DataSource可以是单件,但是Service不能单件,那就有可能变成一个单用户系统,大的Service反而应该是多例。

单件模式虽然使程序运行情况简单,但是也会降低性能,会有不少误区。