玩转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一旦出错之后错误难寻,这也是为什么 ...
随机推荐
- javascript之随机密码[必包含大写,小写,数字]
js取两个数字之间的随机数: parseInt(Math.random()*(上限-下限+1)+下限) 如:取1-10之间的随机数 parseInt(Math.random()*(10-1+1)+ ...
- 洛谷P1799 数列[NOI导刊]
题目 dp状态定义的好题,初看这个题其实并不好想到他的状态,但是可以根据状态的定义,需要满足最优子结构.还有比较重要的一点就是方便转移方程. 首先我们定义dp[i]表示前i个数所能得到的最多个数,发现 ...
- 坑爹微信之读取PKCS12流时出现的java.io.IOException: DerInputStream.getLength
背景 微信退款接口需要使用到证书,我参考微信的官方Demo进行,部分代码如下: char[] password = config.getMchID().toCharArray(); InputStre ...
- docker_概念
为什么有docker? 1. 宿主机可以虚拟一个硬件平台:其上会有内核(在虚拟机上的操作系统),内核负责资源调度和通信:内核之上会有用户态,运行在用户态(用户空间)之上多是应用程序,也就是进程.硬件( ...
- php中socket、fsockopen、curl、stream 区别
socket 水泥.沙子,底层的东西fsockopen 水泥预制件,可以用来搭房子curl 毛坯房,自己装修一下就能住了 水泥.沙子不但可以修房子,还能修路.修桥.大型雕塑.socket也是,不但可以 ...
- 包含MANIFEST.MF的jar可执行应用指定classpath及spring boot应用增量升级打包实现
对于不包含MANIFEST.MF,或jar包中的MANIFEST.MF未指定MainClass的jar,可以通过java命令行选项-classpath指定classpath.但是如果是包含MainCl ...
- PostgreSQL--with子句
在PostgreSQL中,WITH查询提供了一种编写辅助语句的方法,以便在更大的查询中使用.它有助于将复杂的大型查询分解为更简单的表单,便于阅读.这些语句通常称为公共表表达式(Common Table ...
- xadmin插件
from django.http import HttpResponse from xadmin.plugins.actions import BaseActionView class test(Ba ...
- RedisHelper Redis帮助类
using StackExchange.Redis; using System; using System.Collections.Generic; using System.IO; using Sy ...
- 开发人员不得不知的MySQL索引和查询优化
转载:https://blog.csdn.net/enmotech/article/details/88809822 本文主要总结了慢查询优化的过程中常用的以及不合理的操作,适合有 MySQL 基础的 ...