论坛首页 入门技术论坛

Spring+iBatis手动控制事务

浏览 5842 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-09-14  
我现在用Spring+iBatis做一个DAO
public class TestDaoImpl extends SqlMapClientDaoSupport implements TestDao {

    public int updateTestRecord(TestRecord record) throws DataAccessException {
return getSqlMapClientTemplate().update("updateTestRecord",record);
}

}

能不能手动控制事务提交,或者回滚,
比如
  xx.startTransaction();
getSqlMapClientTemplate().update("updateTestRecord",record);
  xx.commit();

不知道怎么做,
我想做的是,几个DAO一起控制事务
userDao1,userDao2,userDao3
在userService里面调用上面三个Dao如果三个Dao正常执行,就提交,不然回滚。
应该有办法,在网上查了一下发现 iBatis以前版本有个DaoManager但是现在最新版好像已经取消了,
不知道新版里有什么可以实现上述功能。
谢谢。
   发表时间:2008-02-26  
这个应该是spring管理事物的问题咯。在userService里面调用上面三个Dao如果三个Dao,
按照你的要求:可以这样:
dao层的方法都要向service层抛出异常,dao层不处理异常,在service层捕获异常,处理一下,这样spring就可以实现事物管理了。这个有几个问题:1spring是捕获dateaccessexception异常的时候才会事物管理成功。可以自己定义一个异常类,继承一下就行。2在spring配置文件里,把事物管理配置到service层上。
0 请登录后投票
论坛首页 入门技术版

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