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("修改结束");
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算两个矩阵之间的欧式距离「建议收藏」

    计算两个矩阵之间的欧式距离「建议收藏」在我们使用k-NN模型时,需要计算测试集中每一点到训练集中每一点的欧氏距离,即需要求得两矩阵之间的欧氏距离。在实现k-NN算法时通常有三种方案,分别是使用两层循环,使用一层循环和不使用循环。使用两层循环分别对训练集和测试集中的数据进行循环遍历,计算每两个点之间的欧式距离,然后赋值给dist矩阵。此算法没有经过任何优化。num_test=X.shape[0]num_…

    2022年6月19日
    95
  • Ffmpeg安装_linux离线安装ffmpeg

    Ffmpeg安装_linux离线安装ffmpeg目录安装包下载解压安装包配置环境变量总结安装包下载作为音视频处理重要软件ffmpeg,是一定要装好的。windows安装包下在链接:资源包地址解压安装包下载安装包后解压到需要的目录。配置环境变量找到控制面板->点击系统->点击高级系统设置->点击环境变量配置解压或文件夹路劲到Path变量中。一直确认后,点击win+r打开cmd。输入ffmpeg-i命令验证一下是..

    2025年11月9日
    4
  • mysql8分区表_MySQL 分区表[通俗易懂]

    mysql8分区表_MySQL 分区表[通俗易懂]MySQL分区就是将一个表分解为多个更小的表。从逻辑上讲,只有一个表或一个索引,但在物理上这个表或者索引可能由多个物理分区组成。每个分区在物理上都是独立的。MySQL数据库分区类型:Range分区:行数据基于属于一个给定连续区间的列值放入分区。List分区:和Range分区类似,只是List分区面向的是离散的值。Hash分区:根据用户自定义的表达式的返回值来进行分区,返回值不能为负数。Key分区:…

    2022年6月11日
    45
  • ideaIU-2022.01.4 激活码-激活码分享2022.03.13

    (ideaIU-2022.01.4 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月2日
    250
  • Springboot面试问题总结

    Springboot面试问题总结Q:什么是springboot?A:多年来,随着新功能的增加,spring变得越来越复杂。只需访问页面https://spring.io/projects,我们将看到所有在应用程序中使用的不同功能的spring项目。如果必须启动一个新的spring项目,我们必须添加构建路径或maven依赖项,配置applicationserver,添加spring配置。因此,启动一个新的spring项…

    2022年6月6日
    29
  • 卡巴斯基实时地图_osek os

    卡巴斯基实时地图_osek os为人熟知的网络安全和杀毒软件公司卡巴斯基推出了新的安全操作系统:KasperskyOS。卡巴斯基CEOEugeneKaspersky在博客文章开头就展示了一个黑盒子——一款三层交换机,这台设备就是采用了卡巴斯基的操作系统,其上赫然写着:PoweredbyKasperskyOS卡巴斯基操作系统。“这款系统是为那些对数据安全有特别需求的网络准备的。”

    2022年8月20日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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