事务

作者: matthewfly | 来源:发表于2019-11-21 09:31 被阅读0次
  1. jdbc事务
    事务必须遵循acid,即原子性、隔离性、一致性、持久性。jdbc的事务都是通过Connecttion接口完成的,涉及到:
  • setAutoCommit 设置是否自动提交,当setAutoCommit(false)时,表示开启事务,需要手动提交;默认为true,执行完一条sql命令后自动提交。
  • commit 提交sql命令,可以是一条或多条。
  • rollback 回滚操作,回滚之前提交的一条或多条操作命令。
  • setSavepoint 在一系列操作中设置一个保存点,后续可以回滚到该保存点。
  • rollback(Savepoint savepoint) 回滚至某个保存点。
  • releaseSavepoint(Savepoint savepoint) 释放某个保存点。
  1. 并发事务级别
    事务控制由严格到宽松有多个级别,相应的事务也会产生各类并发问题:
  • 脏读 事务b中读取到事务a未提交的记录。
  • 不可重复读 事务b中读取同一条记录的结果不同。可能是在事务b过程中事务a对该记录进行了更新。
  • 幻读 事务b中两次读取同一张表的记录条数不同。可能是事务b中事务a对该表进行了插入操作。
  1. jdbc事务级别
  • TRANSACTION_NONE 没有事务
  • TRANSACTION_READ_UNCOMMITTED 读未提交。 可能出现脏读、不可重复读、幻读。事务级别最低,但速度最快。
  • TRANSACTION_READ_COMMITTED 读提交。可以避免脏读数据,但可能出现不可重复读、幻读。
  • TRANSACTION_REPEATABLE_READ 可重复读。避免脏读、不可重复读,但可能出现幻读。
  • TRANSACTION_SERIALIZABLE 串性操作。对整个表加锁,进行串性访问,都避免,但性能最低。

jdbc事务级别由setTransactionIsolation(int level)方法设置。mysql默认事务级别为TRANSACTION_REPEATABLE_READ。

相关文章

  • java事务

    1、java事务介绍 2、JDBC事务 3、JTA事务 1、java事务介绍 java事务分类:JDBC事务、...

  • 事务、MySQL与Python交互、Python 中操作 MyS

    1、事务 事务操作分两种:自动事务(默认)、手动事务 手动事务的操作流程 开启事务:start transacti...

  • 数据库事务书目录

    数据库事务 事务概念 本地事务 全局事务 全局事务的定义 J2EE中全局事务的实现 全局事务的优缺点 基于消息的分...

  • MySQL事务

    MySQL-innodb-事务 事务的特性 事务的生命周期 失败的事务: 事务的控制语句 面试题 事务日志-red...

  • mysql事务隔离机制及其隔离级别、实现原理分析

    目录 事务特性ACID属性 并发事务带来的问题 事务隔离级别 事务实现原理 事务特性ACID属性 事务特性指的就是...

  • MULE事务配置

    在mule的事务可能为jdbc事务,jms事务,xa事务等,多种事务.这里讲解事务的几个动作: 相关的文档:htt...

  • 事务—事务模型

    程序猿基础知识的学习、理解、整理——事务(方方土) 事务,看似很简单,其实很复杂,作为一个程序猿,你对事务到底了解...

  • 事务—XA事务

    程序猿基础知识的学习、理解、整理——事务(方方土) 什么是XA事务?在什么场景下会出现XA事务? @Transac...

  • 事务—事务模式

    程序猿基础知识的学习、理解、整理——事务(方方土) 什么是事务模式?这里提到的事务模式,主要是指在系统设计过程中的...

  • JDK动态代理给Spring事务埋下的坑

    service 模拟动态代理事务 测试类 预测结果模拟事务:开启事务execute doLink模拟事务:关闭事务...

网友评论

      本文标题:事务

      本文链接:https://www.haomeiwen.com/subject/cmdzictx.html