我用spring来管理事务,持久层是使用spring提供的JdbcTemplate来做数据操作。
由于项目比较大,通常一个业务就同时包含了增、删、改、查的操作,我想当其中一个操作失败时,其他都回滚,该怎么做?
如果是手动处理事务时,在异常代码处回滚就可以,但使用spring来管理事务,就不知道如何操作了?是向外抛出个异常吗?
请教各位大侠了!!!谢谢

解决方案 »

  1.   

    你自己查查资料啊 这不难。
    首先:需要在配置文件中配置一个事物拦截器。
    然后把你的JdbcTemplate模板注入给业务层,在业务层调用dao,这样spring就能自己回滚。关键是要把配置写对。
      

  2.   

    这些都配置了,处理单个的业务没问题,但就是我说多方面操作时,却不知道怎么去控制了,
    比如:public int saveStudent(){
        int flag=0;
        //首先要保存班级
        MyClass cls=new MyClass("计算机一机");
       flag=myClassDao.save(cls);
       if(flag>0){//保存成功
         //就做保存学生的操作
       }else{
          //是在这里回滚吗?怎么控制事务
       }
    }
      

  3.   

      LZ 去我blog看看吧
       前端时间刚做了Spring的事务处理
      

  4.   

    Spring的事务处理还是比较完美的。多看看这方面的例子,baidu、google很多的
      

  5.   

    利用aop控制事务 切入点在业务层业务层方法出现runtimeException 向上抛出可以达到回滚 可以参考下spring文档
      

  6.   

    Spring的事务是基于service层的,你把所有的业务方法都写在一个service方法里,一个失败就全回滚了。先学会用Spring才是王道。
      

  7.   

    service层调用dao层..就可以了..service中的方法是一个事务,把数据库操作放在一个事务方法中.
      

  8.   

    在方法中抛出异常就行了,要和你配置文件中的异常对应。
    不过事物不是配在dao这层,应该配在业务层,你配在dao层没有意义,根本涉及不到回滚。