spring能不能这样控制事务:
我用的是struts+spring+jdbc,我在一个方法中写了3条sql语句,我想实现3条语句都成功就commit,一条不成功就回滚,spring可以实现吗?
注:由于使用的是mysql的数据库,并且不是innodb类型的引擎,所以不支持数据库事务,各位大哥指点下,谢谢!

解决方案 »

  1.   

    首先你得把你的数据库引擎换成innodb,然后在Spring的配置文件的配置这个方法的事务边界即可以,注意处理自己定义的业务逻辑异常,事务的回滚默认的话只有发生运行时异常才会回滚的。
      

  2.   

    当然可以,如果提交不成功,会抛出runtime异常,spring会自动回滚的
      

  3.   

    要使用事务控制必须数据库要支持事务。Mysql常用MyISAM、InnoDB引擎,InnoDB支持事务,而MyISAM不支持事务。所以你应该选择InnoDB。
    Spring中提供了声明式事务和编程式事务。声明式事务通过AOP方式,只要通过xml配置就可以实现事务控制。编程式事务使用事务模版,将数据库操作包在模版中就可以实现事务控制。编程式事务使用门槛比较低,声明式事务要对AOP熟悉。具体可以参考Spring Reference-中间层数据访问-事务管理章节。
    Spring Reference下载地址:http://www.redsaga.com/spring_ref/2.5/Spring-Reference_zh_CN.chm