JDBC事务处理设计

              
ykrocku
08-03-31 2 537

一个小项目中使用JDBC访问数据,其中应用到了DAO模式,现在碰到的问题是:
当碰到跨表事务的时候,一个DAO要调用另一个DAO,是事务处理的实现很复杂。
想用一个Transaction对象封装一个Connection,在将Connection对象注入到DAO接口中。但是这里就碰到没有合适的地方关闭statement和resultset的问题?是否也注入,或者还有什么其他解决方案?

不知道这样的设计是否可行,还有什么要注意的~各位高手指点下。

[该贴被ykrocku于2008-03-31 23:11修改过]

banq
2008-04-01 18:13

事务分数据库连接事务和JTA
数据库连接事务只存在一个connection当中,因此这是最简单的事务使用,你使用的就是这种方式,statement和resulset只能用完立即关闭比较好,需要用时再打开。

wlmouse
2008-04-09 14:27

应该是你在Dao里处理事务了。事务粒度太小了。所以造成你不好控制。在Service层控制事务比较好。使用ThreadLocal保存Connection,确认所有的Dao都使用一个Connection。
要是你想方便,使用SPring的JDBC模板好了,能减少很多代码。