`
liulanghan110
  • 浏览: 1063956 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于spring事务

    博客分类:
  • JAVA
 
阅读更多
在ORACLE数据库中,一般DDL语句是隐式COMMIT提交的,所以在修改表或者创建表时,不写COMMIT也会执行。
但一条sql的时候,如果不显示commit(),SQL便不会持久化到数据库。
在spring中,JdbcTemplate操作采用的是JDBC默认的AutoCommit模式,当没有显示指定事务时,JDBC会将一条SQL作为一个事务来执行。也就是说,数据还是会持久化到数据库。
由于一条SQL就是一个事务。当这条SQL执行出错的时候,这条SQL所做的修改会回滚。但是这条SQL之前的动作不会回滚。举个例子:
如果一个方法有三条SQL操作:
A
B
C
如果该方法没有配置事务,那么A、B、C三条SQL会作为三个事务来执行。
当A、B执行完,执行C时出错。C所做的修改都会被回滚,但是,A和B所做的修改不会被回滚,还是会持久化到数据库。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics