Java开发的事务

代码来自https://blog.csdn.net/weixin_42950079/article/details/99674292
可以看出jdbc的一个事务有这么几个步骤:1.关闭sql自动提交;2.提交sql;3.提交事务,抛出异常回滚
Spring的@Transactional本质是做一个切面把上面这些事除了sql语句部分干了,然后开发只需要写sql代码即可
Spring事务管理器底层参见https://blog.csdn.net/cccmercy/article/details/81584826
对于分布式事务,也可以自己写一个注解实现AOP:
1.接收需要组合在一起的数据源对应的事务管理器id
2.在执行业务方法之前,通过这些事务管理器,手动开启事务
3.执行业务方法
4.业务方法执行完毕之后,再使用这些事务管理器,手动提交事务
5.如果业务方法抛出异常:判断是否不需要回滚事务,如果不需要回滚,则提交事务;否则回滚
事实上,这也就是为什么分布式事务会有额外的中间件
Java开发的事务的更多相关文章
- Java EE开发课外事务管理平台
Java EE开发课外事务管理平台 演示地址:https://ganquanzhong.top/edu 说明文档 一.系统需求 目前课外兴趣培训学校众多,完善,但是针对课外兴趣培训学校教务和人事管理信 ...
- Java开发学习(二十二)----Spring事务属性、事务传播行为
一.事务配置 上面这些属性都可以在@Transactional注解的参数上进行设置. readOnly:true只读事务,false读写事务,增删改要设为false,查询设为true. timeout ...
- 如何自学 Java 开发
如何自学 Java 开发? 568赞同反对,不会显示你的姓名 李艾米IT路上学习 568 人赞同 Java Web前端技术 HTML 入门视频课程 1 HTML 简介 2 HTML基本结构[ 3 HT ...
- 使用Java开发高性能网站需要关注的那些事儿
无论大型门户网站还是中小型垂直类型网站都会对稳定性.性能和可伸缩性有所追求.大型网站的技术经验分享值得我们去学习和借用,但落实到更具体的实践上并不是对所有网站可以适用,其他语言开发的网站我还不敢多说, ...
- JAVA开发相关
JAVA开发相关1. IntelliJ IDEA开发工具熟练使用2. Maven3. Spring框架(IoC.AOP) 1)数据库相关MyBatis 2)数据库连接池 3)事务.多数据源.跨数据库分 ...
- java开发常用jar包介绍(转载)
jta.jar 标准JTA API必要 commons-collections.jar 集合类 必要 antlr.jar ANother Tool for Language Recognition ...
- spring 第一篇(1-1):让java开发变得更简单(下)
切面(aspects)应用 DI能够让你的软件组件间保持松耦合,而面向切面编程(AOP)能够让你捕获到在整个应用中可重用的组件功能.在软件系统中,AOP通常被定义为提升关注点分离的一个技术.系统由很多 ...
- Java开发手册
<Java开发手册> 基本信息 作者: 桂颖 谷涛 出版社:电子工业出版社 ISBN:9787121209161 上架时间:2013-8-12 出版日期:2013 年7月 开本 ...
- Java中的事务——JDBC事务和JTA事务
Java中的事务——JDBC事务和JTA事务 转载:http://www.hollischuang.com/archives/1658 之前的事务介绍基本都是数据库层面的事务,本文来介绍一下J2EE中 ...
- Java开发—乘风破浪
最近需要上线很多新的JAVA项目,然而很多JAVA的相关库都不太熟悉,项目实现起来遇到了不小阻力,熬了好几天夜.手头的基本完成了,因此打算好好来熟悉下java的相关工具库,需要借助你们,好好的在JAV ...
随机推荐
- 解决python 操作 hbase报错:TTransportException(type=4,message=’TSocket read 0 bytes’)
```text# 解决报错:hbase报错TTransportException(type=4,message='TSocket read 0 bytes')这种情况一般协议问题和服务端没开启,如果服 ...
- DRF的安装和基本增删查改的简单使用
1.app注册 2.建表 3.创建ser.py(重点) 4.views.py代码(重点) queryset:指明该视图集在查询数据时使用的查询集 serializer_class:指明该视图在惊醒序列 ...
- django解决网站CORS前后端跨域问题
1.安装cors-headers⼯具 pip install django-cors-headers 2.安装cors-headers应⽤ # 注册应用 INSTALLED_APPS = [ 'd ...
- 安装ubuntu后的U盘(tf卡)恢复到之前的状态
sudo fdisk /dev/sdasudo mkfs.vfat /dev/sda 注意: sda是 disk的名字.不同的电脑可能不一样.
- CSS3选择器nth-child(n)
CSS3选择器nth-child(n)实现隔几行选择元素 nth-child(n),n 可以是数字.关键词或公式.选择器匹配属于其父元素的第N个子元素,不论元素的类型. 序号写法:li:nth-chi ...
- 由浅入深学习SAP财务 - 高林旭 PDF 版本
由浅入深学习SAP财务 - 高林旭 PDF 版本 有需要的联系 wx :erpworld
- git常用命令与AndroidStudio常用快捷键
git相关内容: 产生密钥:cd ~/.ssh (C:\Users\账户名称\.ssh)生成密钥:ssh-keygen -t rsa -C "your_email@youremail.com ...
- C#如何将光标定位到文本框末尾(最后一位)
代码如下:private void Movetoend(){//让文本框获取焦点this.TextBox1.Focus();//设置光标的位置到文本尾this.TextBox1.Select(this ...
- TypeScript 声明文件
TypeScript 声明文件 TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库.虽然通过直接引用可以调用库的类和方法,但是 ...
- Java基础——二维数组
package com.zhao.demo; public class Demo08 { public static void main(String[] args) { //二维数组 int[][] ...