JDBC_3 数据库事物

JDBC_3 数据库事物数据库事务数据一旦提交,就不可回滚那些操作会导致数据的自动提交?DDL操作一旦执行,都会自动提交-. set autocommit = false不起作用DML默认情况下,一旦执行就会自动提交-. 可以设置set autocommit = false关闭连接的时候会自动提交 Connection connection = DriverManager.getConnection(url, user, password); connection.setAutoCommit

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

数据库事务


数据一旦提交,就不可回滚
那些操作会导致数据的自动提交?

  1. DDL操作一旦执行,都会自动提交
    -. set autocommit = false不起作用
  2. DML默认情况下,一旦执行就会自动提交
    -. 可以设置set autocommit = false
  3. 关闭连接的时候会自动提交
		Connection connection = DriverManager.getConnection(url, user, password);
        connection.setAutoCommit(false);
        String sql1 = "update user_table set balance = balance - 100";
        update(connection,sql1,"AA");
        String sql2 = "update user_table set balance = balance + 100"
        update(connection,sql2,"BB");
        connection.commit();

注意 若Connection没有被关闭,还有可能被重复使用,则需要恢复其自动提交状态。尤其是在使用数据库连接池技术的时候。

事务的ACID属性

  1. 原子性(Atomicity):原子性是值事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生
  2. 一致性(Consistency):事务必须是数据库从一个一致性状态变换到另外一个一致性状态
  3. 隔离性(Isolation):事务的隔离性是指一个事物的执行不能被其他事务干扰,即一个事物内部的操作及使用的数据对冰法的其他事务是隔离的,并发执行的各个事物之间不能相互干扰
  4. 持久性(Durability):持久性是指一个事务一旦被提交,他对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响
    数据库的并发问题
  • 脏读:对于两个事务T1,T2,T1读取了已经被T2更新但还没有被提交的字段,之后,若T2回滚,T1读取的内容就是临时且无效的。
  • 不可重复读:对于两个事务T1,T2,T1读取了一个字段,然后T2更新了该字段,之后,T1再次读取同一个字段,值就不同了
  • 幻读:对于两个事务T1,T2,T1从一个表格中读取了一个字段,然后T2在该表格中插入了一些新的行,之后如果T1再次读取同一个表,就会多出几行。

四种隔离级别
在这里插入图片描述
JDBC_3 数据库事物
java中的事务操作举例

        Connection connection = DriverManager.getConnection(url, user, password);
        //获取当前数据库的隔离级别
        System.out.println(connection.getTransactionIsolation());
        //设置数据库的隔离级别
        connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
        connection.setAutoCommit(false);
        String sql = "select user,password,balance = ? from user_table where user = ?";
        User user = getInstance(connection,User.class,sql,"CC");
        System.out.println();

        Connection connection = DriverManager.getConnection(url, user, password);

        connection.setAutoCommit(false);
        String sql = "update user_table set balance = ? where user = ?";
        update(connection,sql,5000,"CC");
        Thread.sleep(15000);
        System.out.println("修改结束");
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168964.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 感知机的对偶形式「建议收藏」

    感知机的对偶形式「建议收藏」首先声明感知机的对偶形式与原始形式并没有多大的区别,运算的过程都是一样的,但通过对偶形式会事先计算好一些步骤的结果并存储到Gray矩阵中,因此可以加快一些运算速度,数据越多节省的计算次数就越多,因此比原始形式更加的优化。首先我们介绍一下感知机的原始形式,之后与其对比。感知机感知机是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,分别去+1和-1两值。感知机对应与输入空间中将实例划

    2022年10月20日
  • linux中复制文件夹到另一个文件夹_linux 文件夹复制

    linux中复制文件夹到另一个文件夹_linux 文件夹复制1、将一个文件夹下的所有内容复制到另一个文件夹下cp-r/home/packageA/*/home/cp/packageB/或cp-r/home/packageA/./home/cp/packageB/这两种方法效果是一样的。方法示例:2、将一个文件夹复制到另一个文件夹下cp-r/home/packageA/home/packageB运行命令之后packageB文件夹下就有packageA文件夹了。方法示例:3、删除一个文件夹及其下面的所有文件r

  • UAT SIT QAS DEV PET 的缩写都是什么呀?

    UAT SIT QAS DEV PET 的缩写都是什么呀?SIT:SystemIntegrateTest的缩写,即系统整合测试QAS:QualityAssurancesystem 质量保证DEV:Development开发PET:PerformanceEvaluationTest 性能测试

  • C语言最大公约数和最小公倍数

    C语言最大公约数和最小公倍数首先我们应该知道最大公约数和最小公倍数的基本概念最大公约数:指两个或多个整数共有约数中最大的一个最小公倍数:俩数相乘除以最大公约数一、最大公约数方法一:先令最大公约数max为1,当俩个数x、y都能被循环变量i整除时,把循环变量i赋值给最大公约数max,这样在循环结束后,就求得了最大公约数,但是这种做法过于复杂,耗时。方法二:先比较俩数的大小,然后::::;用两数中的较大数除以较…

  • 网络安全:小心MSHTA漏洞为黑客开启远程控制之门

    网络安全:小心MSHTA漏洞为黑客开启远程控制之门这是一个可以让黑客欣喜若狂的新漏洞,一旦该漏洞被激活,就会有大量计算机成为黑客手中的肉鸡,被人远程控制不可避免……  微软的Windows操作系统在进行了短暂的“喘息”后,近日又在攻击爱好者不懈努力下,被成功找出几个高危的系统安全漏洞,而MicrosoftWindowsMSHTA脚本执行漏洞就是其中的重要一员。  安全公告牌  MSHTA即HTA,此处的MS主要用于强调这是微软的

  • java学习——使用Eclipse进行单元测试,报错Can’t allocate jvmti memory

    工具环境:Windows+Eclipse+Jdk1.7 项目框架: Spring+SpringMVC + Hibernate在使用Eclipse进行单元测试的时候运行后,没有成功!并且控制台输出报错Can’t allocate jvmti memory 具体报错信息如下:FATAL ERROR in native method: JDWP Can’t allocate jvmti memory

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号