关于持久层问题,高手请进
平台TOMCAT4,不提供TRANSACTION管理服务.只能利用数据库的本地TRANSACTION,而要利用数据库的本地TRANSACTION,就必须先取得连接。
为了封装数据库访问逻辑,把对每个table的访问都封装成DAO,在实现单个表的事务时,可以在相应的DAO中取得连接使用数据库的本地TRANSACTION。而在涉及到多个表时,怎么办?难道每个事务都要做成一个DAO,那太多了(事务几乎是所有表的任意组合)!!
请问在不采用应用服务器的前提下,怎样解决这个问题?业界经常采用的做法是怎样的?
问题点数:100、回复次数:6Top
1 楼j2me_home(魔·天使)回复于 2005-06-03 09:04:05 得分 30
一个Action对应一个Service,一个Service对应一个Domain Logic,一个Domain Logic对应一个DAO,如果是主从表关系,把它们看作两个DAO比看作一个DAO好管理,这样并不多影响数据库的性能,你可以这样看有几个实体类,就对应几个Logic,同时也对应几个DAO,但是你的DAO并不一定要对应每一个关系类,如果考虑数据库的影响,你也可以只对应一个关系类Top
2 楼brucejia(大碗喝酒,大块吃肉,谨防高血压)回复于 2005-06-03 10:04:40 得分 10
upTop
3 楼bigdog001(大狗)回复于 2005-06-03 10:17:48 得分 40
如果不是采用诸如spring之类的AOP调用实现Db的transaction,
那末只有一个办法,dao函数中传入connection参数,在一系列dao操作过后再实现connection的关闭或失败回滚操作。Top
4 楼niunj(南航牛)回复于 2005-06-03 11:24:25 得分 10
upTop
5 楼wzy19514(凡事留一线,日后好相见)回复于 2005-06-03 11:34:33 得分 10
upTop
6 楼krack2002(痴)回复于 2005-06-03 14:02:50 得分 0
to bigdog001(大狗):
目前众多框架中,除了spring外,还有哪些能做到事务管理?Top




