JiveJdon Community Forums
在线449人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 5 回复 / 1
 发表新帖子   回复该主题贴
morodos

悄悄话
发表文章: 5
注册时间: 2006年05月09日 23:04
一个关于数据库连接池对象放置位置的问题 2006年05月09日 23:05 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
本人初学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对象?
不太明白,望大家不吝帮助。谢谢!

morodos

悄悄话
发表文章: 5
注册时间: 2006年05月09日 23:04
Re: 一个关于数据库连接池对象放置位置的问题 2006年05月09日 23:09 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
因为业务代理接口要通过调用通用的数据库操作bean完成很多数据库相关的操作.所以要new一个通用的数据库操作bean。
当然可以把通用的数据库操作bean放在application作用域。不过感觉又不好。我想知道我上面的担心是否成立!我如何在IDE中验证我的想法呢?
morodos

悄悄话
发表文章: 5
注册时间: 2006年05月09日 23:04
Re: 一个关于数据库连接池对象放置位置的问题 2006年05月10日 12:05 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
知道了 将ds定义成static就可以了
morodos

悄悄话
发表文章: 5
注册时间: 2006年05月09日 23:04
Re: 一个关于数据库连接池对象放置位置的问题 2006年05月10日 12:05 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
还可以用单件模式
morodos

悄悄话
发表文章: 5
注册时间: 2006年05月09日 23:04
Re: 一个关于数据库连接池对象放置位置的问题 2006年05月10日 13:14 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
说到底,这是一个关于领域模型的架构问题。
serveice--->DAO--->domain object
只不过我的DAO调用的是一个自制通用数据库bean实现持久层,而不是用的Hibernate之类的框架。
我的理解,通过jndi查找的datasource应该在通用数据库bean中声明和初始化。然后在application listener 中实例化通用数据库bean到application作用域。
serveice和DAO应该也是整个应用只有一个实例,符合单间模式。不过简单的处理可以全部只在application listener 中实例化。
不知道这样的处理好不好?
banq

悄悄话
发表文章: 9528
注册时间: 2002年08月03日 17:08
Re: 一个关于数据库连接池对象放置位置的问题 2006年05月10日 17:53 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>serveice和DAO应该也是整个应用只有一个实例,符合单间模式。
需要小心,DataSource可以是单件,但是Service不能单件,那就有可能变成一个单用户系统,大的Service反而应该是多例。

单件模式虽然使程序运行情况简单,但是也会降低性能,会有不少误区。
这个主题有 5 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam