玩转Spring全家桶笔记 04 Spring的事务抽象、事务传播特性、编程式事务、申明式事务
1.Spring 的事务抽象
Spring提供了一致的事务模型
- JDBC/Hibernate/Mybatis 操作数据
- DataSource/JTA 事务
2.事务抽象的核心接口
PlatformTransactionManage
- DateSourceTransactionManage
- HibernateTransactionManage
- JtaTransactionManage
TransactionDefinition
- Propagation
- lsolation
- Timeout
- Read-only status
3.事务传播特性7个

4.事务隔离特性

5.编程式事务
在spring 提供的事务里面经常用下面两种进行事务的操作
TransactionTemplate
- TransactionCallback
- TransactionCallbackWithoutResult
PlatformTransactionManage
- 可以传入TransactionDefinition
6.测试编程式事务
@SpringBootApplication
public class DemoApplication implements CommandLineRunner { @Autowired
private TransactionTemplate transactionTemplate; @Autowired
private JdbcTemplate jdbcTemplate; public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
} @Override
public void run(String... args) throws Exception { System.out.println("事务执行前---》"+getCount()); transactionTemplate.execute(new TransactionCallbackWithoutResult() { @Override
protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) { //事务执行中
jdbcTemplate.execute("insert into user(id,username,password) values(1,1,1)");
System.out.println("事务执行中---》"+getCount());
//回滚W
transactionStatus.setRollbackOnly();
}
});
System.out.println("事务执行后---》"+getCount()); } //统计数据条数
public long getCount() {
return jdbcTemplate.queryForObject("select count(*) from user", Long.class);
} }
7.申明式事务

8.基于注解的配置方式
开启事务注解的方式 @EnableTransactionManagement
@Transactional
- transactionManage
- propagation
- isolation
- timeout
- readOnly
- 判断回滚
9.代码参考:https://gitee.com/mrc1999/SpringBoot-study-book/tree/master/04TransactionTemplate
玩转Spring全家桶笔记 04 Spring的事务抽象、事务传播特性、编程式事务、申明式事务的更多相关文章
- 玩转Spring全家桶笔记 03 Spring的JDBC操作以及SQL批处理的实现
1 spring-jdbc core JdbcTemplate 等相关核心接口和类(核心) datesource 数据源相关的辅助类(内嵌数据源的初始化) object 将基本的JDBC操作封装成对象 ...
- 玩转Spring全家桶笔记 02 那些好用的连接池HikariCP
1.前言 简单了解一下来自日本的一个新起之秀连接池---HikariCP github:https://github.com/brettwooldridge/HikariCP 2.HikariCP为什 ...
- Spring全家桶系列–SpringBoot渐入佳境
//本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 首发地址:https://www.javazhiyin.com/20913.html 萌新:小哥,我在实 ...
- Java秋招面试复习大纲(二):Spring全家桶+MyBatis+MongDB+微服务
前言 对于那些想面试高级 Java 岗位的同学来说,除了算法属于比较「天方夜谭」的题目外,剩下针对实际工作的题目就属于真正的本事了,热门技术的细节和难点成为了面试时主要考察的内容. 这里说「天方夜谭」 ...
- 最全153道Spring全家桶面试题,你都碰到过哪些?(含答案解析)
前言 Spring 框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶. 毋庸置疑,Spring 早已成为 Java 后端开发的行业标准,无数的公司选择 Spring 作为基础的 ...
- 10分钟详解Spring全家桶7大知识点
Spring框架自2002年诞生以来一直备受开发者青睐,它包括SpringMVC.SpringBoot.Spring Cloud.Spring Cloud Dataflow等解决方案.有人亲切的称之为 ...
- Spring全家桶–SpringBoot Rest API
Spring Boot通过提供开箱即用的默认依赖或者转换来补充Spring REST支持.在Spring Boot中编写RESTful服务与SpringMVC没有什么不同.总而言之,基于Spring ...
- Spring全家桶系列–SpringBoot之AOP详解
//本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关 ...
- Spring全家桶系列–[SpringBoot入门到跑路]
//本文作者:cuifuan Spring全家桶————[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...
随机推荐
- 指针的运算符&、*
int y=0; int* yptr=&y; •互相反作用 •*&yptr -> * (&yptr) -> * (yptr的地址)-> 得到那个地址上的变量 ...
- Linux 把进程为D(不可中断进程)转换成其他状态
问题现象:当前集群跑hadoop的时候,,任务失败,但是跑任务的容器没有正常退出,显示一大堆的YarcChild进程,,more /proc/进程/status 查看其状态,进程为D(disk s ...
- 开机启动类似于Tencent Upd的弹窗解决方法
1.开机启动的程序,后台启动自动升级的exe,每次开机都弹出弹窗,一不小心就点错了,神烦. 解决方式:直接在windows系统 [ 本地安全策略>软件限制策略>其他规则 ] 里面把弹出的 ...
- PL/SQL Developer插入数据到数据库出现数据中文乱码
问题描述: 使用PL/SQL Developer往Oracle数据库插入数据,出现中文乱码! 解决办法: 1.执行脚本 select userenv('language') from dual; 结果 ...
- EXCEL复制可见单元格
Excel筛选后,复制筛选后的单元格 1, 首先还是复制这一部分内容. 2, CTRL+G打开 "定位"窗口. 3, 在 "定位"窗口中选择"定位条件 ...
- 请写出css3样式的优先级,并排序
!important(权重最大)1000>内嵌样式(style="")>内部样式>外联样式>@import url("url");
- Redis系列 | Redis5.0 新特性
- Websocket实现Java后台主动推送消息到前台
写在前面 需求: 项目测试, 缺少用户登录失败给admin推送消息, 想到这个方式, 当用户登录失败时, admin用户会在页面看到咣咣乱弹的alert. 正文 pom.xml <!-- web ...
- JVM探究之 —— HotSpot虚拟机对象探秘
本节以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中对象分配.布局和访问的全过程. 1. 对象的创建 Java是一门面向对象的编程语言.在语言层面 ...
- Laravel 入门常见问题汇总
一.安装完成后想打开 Laravel 内置的登录页面,报错 解决方法: Laravel 利用 PHP5.4 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...