写点什么

聊聊你眼中的 spring 的事务是怎么样的?

作者:卢卡多多
  • 2021 年 11 月 20 日
  • 本文字数:749 字

    阅读完需:约 2 分钟

聊聊你眼中的spring的事务是怎么样的?

聊了好久的关于数据库,MYSQL 的事务,今天我们进行新的一个标题领域,是关于 spring 的,


对,就是 spring 的事务。

spring 事务

本质上是基于数据库事务的包装, 经过 spring 事务的简化包装,使得我们将开启事务,运行事务,结束事务,回滚事务更加的便捷和快速。


其中 spring 主要是支持对于事务的管理功能如果要使用 spring 的事务,首先是当前使用对接的数据库 ,本身是支持事务的(MySQL 是支持事务的)

JDBC 数据库的驱动

如果我们需要在项目中,使用对接数据库的进行增删改查, crud 的操作,这种操作肯定会用到数据库的事务,进行事务处理, 如果是原生的处理方式,就是 MySQL 的 JDBC 的驱动,在程序中去加载这个驱动,然后将数据库和我们的程序链接在一起,进行事务处理。


  • JDBC 的加载:


class.forName("com.mysql.jdbc.Driver")
复制代码


  • 建立数据库的连接,后两个参数分别为账号和密码:


Connection conn =DriverManger.getConnection(URL,“root”,“root”);
复制代码


  • 开启事务


conn.setAutoCommit(true/false)
复制代码


  • 数据库执行 CRUD 操作


   PreparedStateMent ps=con.prepareStatement(sql)   ps.executeUpdate();   ps.executeQuery();
复制代码


  • 提交或者回滚事务


conn.commit();
conn.rollback();
复制代码


  • 关闭连接


ps.close();conn.close();
复制代码

spring 管理事务

spring 事务功能 ,包装好了底层的 JDBC 的驱动事务功能,也就是通常上面的 第三部到最后的功能,


一般要利用 spring 事务,需要在类或者方法上,加上注解 @Transactional 注解, 当前 spring 的事务中,开启事务,


这些都是底层 spring 的框架 AOP 代理字段完成的,

事务的运行过程

大家都知道 spring 是基于 IOC 容和 AOP 来进行管理器 bean 对象,加上这个 @Transactional 注解,spring 容器启动的时候会扫描整个类中具有标识注解的类和方法,并为这些个方法创建代理对象,其中也进行相应的参数配置,从而对事务进行管理

spring 事务分类



发布于: 1 小时前阅读数: 5
用户头像

卢卡多多

关注

努力寻找生活答案的旅途者 2020.04.12 加入

公众号:卢卡多多,欢迎一起交流学习

评论

发布
暂无评论
聊聊你眼中的spring的事务是怎么样的?