关于用JAVA对MY SQL的InnoDB进行CUD操作时的问题.

来源:互联网 发布:长城软件客服电话 编辑:程序博客网 时间:2024/05/31 15:19

这几天做的项目马上要Open了.

 

刚开始按照客户那里拿到的DB Scheme建立数据库.

表的类型都是myisam.

也没有对Transaction做配置.

 

直到这几天要在测试服务器(和Real环境一样)做测试时才发现.

insert,update,delete操作都不好使了.

原来测试服务器上的table类型都是InnoDB.

 

后来给Spring分配BO时加了Spring Transaction. 才解决这个问题.

 

Spring的Transaction配置我就知道2种. 其他还没研究.

第一种

 

这样只要BO的方法命名是以insert,delete,update,save,create开始的. Spring Transaction会自动分配一个Transaction的.

 

第二种是 Annotation的方法.

在javaBO方法中使用

@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)

 

如果使用这种方法,灵活性高一些.

 

如果项目刚开始的时候代码规范中详细规定BO的方法名. 可以使用第一个方法.

如果项目业务逻辑复杂, 让维护者容易看到方法的意思,且想使用按照逻辑来取方法名字, 可以使用第二者..

 

在第二个方法中的annotation部分中 isolation这个后面的具体的值可以按照自己的需求来变更.