你再仔细看看spring的代码不久完了,事务的开始提交回滚,需要比你的方法高一层,也就是在调用方法这层上,你却把它和方法放在同一层,自然无法控制多个方法了。

解决方案 »

  1.   

    就是一个面向切面编程  aop用的是jdbc的事务当碰到数据库操作的方法时,首先设置自动提交为false
    然后一系列数据库操作方法的实际调用 ,  最后一次性提交这些操作   就是这么简单
    spring  -> ioc+aop   其他的就是对一些框架  技术的封装  让你使用起来更加简单
      

  2.   

    建议你使用spring的declarative transaction,直接在spring的applicationContext里面配置就好了。。这种侵入式的方式不好。
      

  3.   

    ==>flyforlove听你一说确实给我一些灵感,你能不能对此再细的一些指导?万分感谢!也感谢其他朋友的回答,我说明一下我是想自己做一个事务管理的工具,而不是如何应用spring的
      

  4.   

    补充:象在spring中直接调用如下这种方式spring在事务中也是很正确的处理,不知这是如何做到的?
     public   static   void   main(String[]   args)
     {   
        AbstractApplicationContext appContext=new ClassPathXmlApplicationContext(cfgs);
        Services service=(Services)appContext.getBean(beanName);
        service.method1();
        service.method2();
     }
      

  5.   

    spring事务处理非常复杂的。。
      

  6.   

    spring事务再难也要啃一下,这对个人提升很有帮助,大伙帮忙顶一下吧,知道或知道一点的都抖出来别掖着嘛
      

  7.   

    补充:象在spring中直接调用如下这种方式spring在事务中也是很正确的处理,不知这是如何做到的?
      public       static       void       main(String[]       args)
      {      
            AbstractApplicationContext   appContext=new   ClassPathXmlApplicationContext(cfgs);
            Services   service=(Services)appContext.getBean(beanName);
            service.method1();
            service.method2();
      } -------------------------------一般事务的控制就是service层,而且一次请求就只用一个service的方法,如果需要两个service方法的话(非常不推荐,但是也不是不能用)。
    你可以在前一个方法中调用后一个方法,就像上面代码中在method1()中去调用method2(),注意两个方法的事务类型。
      

  8.   

    flyforlove:你说的这种方法确实会好很多,而且我也看过spring中有一部分代码实现是你说的这种方式,但事实我们在开发当中很多开发人员就会应用到我说的那种方式,我说的这种方式spring真的是完成好好的,这个一直搞不懂.
      

  9.   

    那就是事务的声明在你的service层的上层,或者事务处理是在程序中进行的,而不是在配置文件里声明的。