论坛首页 Java企业应用论坛

DAO设计模式和事物处理

浏览 27811 次
该帖已经被评为精华帖
作者 正文
   发表时间:2004-02-26  
dao对象,正如其名字“数据访问对象”,属于系统的“数据访问层”,而事务处理属于业务层,所以别把事务处理放在数据访问层。除非是数据访问层本身的事务,那么就应该放在dao里。
0 请登录后投票
   发表时间:2004-03-01  
哈哈,楼上钻我的牛角尖呀!事务当然可以是Bean管理的,J2EE的事务有7种,其中之一就是Bean管理。呵呵,当你选择了Required,还能选择Bean管理么?哈哈,当然Required是针对方法级别的。
   如果多个Connection存在于一个Bean方法中,那就是分布式事务了,楼上,就不是那么简单滴!同一提交、同一回滚,呵呵,那只是一种简单的思考罢了(你有没有想过如果两个不同的链接都是更新同一个表,又在同一个事务当中,怎么处理,怎么回滚呢?这还是简单的疑问,复杂的多着了)
0 请登录后投票
   发表时间:2004-03-01  
总是感觉凤兄对EJB理解有所偏颇,你所说的J2EE的事务有其中其实是CMT的七种不同的事务管理方式。EJB的事务管理只有BMT或CMT.还有所谓,多个connection存在于一个bean方法中就是分布式事务了更是误导!什么是分布式也没搞清楚吧
0 请登录后投票
   发表时间:2004-03-02  
EJB的事务管理主要分为容器事务和Bean事务,其中容器事务有:Required,RequireNew,Mandatory,Support , Not Support , Never6种属性,如果选择了Bean管理事务,那么上述六种事务是不能选择的,如果选择上述6种,也就不能选择Bean管理。不要老抓我的词不放。
   多个connection在一个事务中,必须有两种,一种属于分布式事务,另外链接必须共享,也就是说实际上是同一个链接。而且我可以明说,JBoss,Apusic都不支持,WebLogic、Websphere支持(简单地讲,你可以在SessionBean中同时访问CMP,DAO-通过JDBC,这样的话,会报错!)
   分布式事务是什么?分布式事务是对于一个逻辑事务中出现了多个本地事务(本地事务可以是在同一资源,也可以在不同资源;可以是对不同资源的不同地访问,也可以是对同一资源不同的链接)。分布式事务非常难以处理,换句话说,做EJB的集群就必须做到分布式事务。
   这就是如今很多服务器,支持流量分流、支持Weba集群的很多,但是支持EJB集群的服务器却很少的原因。
   在我的话中,当然有很多语言不甚精确,但是希望楼上根据语境来看待问题,不要老抓我一两句不准确的话语。(我做J2EE包括EJB的项目应用都两年多了!从1.0就开始用了,不要老水我,
0 请登录后投票
   发表时间:2004-03-07  
凤舞凰扬 写道
EJB的事务管理主要分为容器事务和Bean事务,其中容器事务有:Required,RequireNew,Mandatory,Support , Not Support , Never6种属性,如果选择了Bean管理事务,那么上述六种事务是不能选择的,如果选择上述6种,也就不能选择Bean管理。不要老抓我的词不放。
   多个connection在一个事务中,必须有两种,一种属于分布式事务,另外链接必须共享,也就是说实际上是同一个链接。而且我可以明说,JBoss,Apusic都不支持,WebLogic、Websphere支持(简单地讲,你可以在SessionBean中同时访问CMP,DAO-通过JDBC,这样的话,会报错!)
   分布式事务是什么?分布式事务是对于一个逻辑事务中出现了多个本地事务(本地事务可以是在同一资源,也可以在不同资源;可以是对不同资源的不同地访问,也可以是对同一资源不同的链接)。分布式事务非常难以处理,换句话说,做EJB的集群就必须做到分布式事务。
   这就是如今很多服务器,支持流量分流、支持Weba集群的很多,但是支持EJB集群的服务器却很少的原因。
   在我的话中,当然有很多语言不甚精确,但是希望楼上根据语境来看待问题,不要老抓我一两句不准确的话语。(我做J2EE包括EJB的项目应用都两年多了!从1.0就开始用了,不要老水我,


学术研究需要一个严谨的态度,论坛的技术回贴更是如此,这是对其他网友的尊重,也是对你自己的负责.你不是提倡对设计编码进行重构吗,我想你对自己的回复进行重构应该不是很困难的吧.
0 请登录后投票
   发表时间:2004-03-08  
:oops: ,我实在没有任何的意思,只是我希望大家在进行技术讨论的时候,针对一些需要讨论的问题,因为回复自然是有限的,而且不像写书,打快了,语句有些毛病或者没有表达清楚都是有可能的。我希望每一个人在讨论的时候不要去抓这样的细节问题,如果是那样,讨论也就没有任何意义了,纯粹变成两个人的吵嘴了,不是么?呵呵,我不想吵嘴的。
    楼上的指出,哈哈,说明我的态度还是有问题的,我接受批评,并主动开展自我批评,哈哈~~~~~~~~~~~,我也开始重构一番。
0 请登录后投票
   发表时间:2004-03-08  
如果你的jdbc实现了XA的话,使用JTA都可以,不同connection也可以在同一个事务
0 请登录后投票
   发表时间:2004-03-08  
是啊,用XA的驱动,可以使同一资源的不同链接共享一个事务情境(context),但是实际实现的是使两个不同的调用共享使用同一个链接罢了。对于数据库的事务,在本地上是不可能通过两个链接进行的,当然,一个方式便是将两个本地事务融合为一个分布式事务,只不过这种分布式属于虚拟的罢了。
0 请登录后投票
   发表时间:2004-03-09  
如果都是本地事务,且为同一数据库,应该是没必要用XA驱动吧?个人感觉分布式事务应该是会慢一些的
0 请登录后投票
   发表时间:2004-03-09  
是没必要使用XA
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics