0
点赞
收藏
分享

微信扫一扫

Spring中 数据库事务的操作详情

有点d伤 2022-04-17 阅读 100
spring

//Spring中 事务操作
// 事务四个特性
// 原子性
// 隔离性
// 一致性
// 持久性

当 方法里的 所有程序都执行成功后才算执行成功
// 1。 开启事务
// 2. 业务操作
// 3. 没有异常 进行事务提交
// 4. 如果出现异常 事务回滚
// 5. 关闭事务

    // 在Spring进行事务管理操作
  1. 有两种方式 : 编程式事务管理 和 声明式事务管理(使用)

     // 声明式事务管理
     // 1. 基于注解方式  最常用的
     // 2. 基于xml 配置文件方式
    
     // 在Spring进行声明式事务管理  底层使用AOP原理实现的
    
     // spring事务管理 API
     // 提供一个接口 代表 事务管理管理器 这个接口针对不同的操作数据库的框架提供不同的实现类
     // 比如现在用的 JdbcTemplate
     // 操作数据库 还有很多种框架
    
     // 事务操作
     // 注解声明式事务管理
     //1.  在配置文件中 配置事务管理器
    
     //2.  开启事务注解
    
     //@Transactional   //事务注解 可以添加到类上面 也可以添加 到方法上面
     // 这个注解有相关参数
     //1. propagation  事务传播行为
     //  多事务调用方法的过程  叫做 事务传播行为
     //  通俗讲解 就是 一个加事务注解 调用没有事务注解的方法的过程
     // 事务有7中传播类型  以下 前两种 最常见
     //REQUIRED      add 方法有事务 调用 没有事务的update方法 update 使用的 add 事务
     //REQUIRES_NEW  add 方法调用update方法 如果add无论是否有事务 都会创建新的事务
    
    
     //2. isolation    事务隔离级别
     // 事务有特性位隔离性 多事务操作之间不会产生影响  不考虑隔离会产生很多问题
     // 有三个读得问题  脏读 、 不可重复读、 虚(幻)读  一般在并发情况下会出现
     // 通过设置事务得隔离级别 可以解决这三个问题
     // 脏读   一个未提交事务读取到另一提交事务修改得数据
     // 不可重复读  一个未提交得事务 读取到了一个提交过事务得数据 这是一种现象
     //  虚(幻)读  一个未提交事务读取到另一提交事务添加数据
     //                              脏读    不可重复读    虚(幻)读
     // read uncommitted(读未提交)    有        有            有
     // read committed(读已提交)      无        有            有
     // repeatable read(可重复读)     无        无            有    mysql 默认隔离级别
     // serializable(串行化)          无         无           无
    
     //3. timeout    超时时间 单位 秒  spring 默认 -1 永不超时
     // 事务要在一定得时间内进行提交 如果在一定时间内不提交 就会回滚
     //4. readOnly  是否只读  默认 false  如果为 true 只能读操作
     //5. rollbackFor  回滚
     // 设置出现哪些异常进行回滚
     //6. noRollbackFor  不回滚
     // 这只出现哪些异常进行不回滚
    

基于 xml 配置文件 方式 实现 事务声明 一般使用 注解方式 了解就好 现在不常用
在这里插入图片描述

举报

相关推荐

0 条评论