• java操作MySQL数据事务的简单学习


    在执行数据更改操作前使用数据库连接对象调用setAutoCommit方法(conn.setAutoCommit(false)),其参数true或false区别:

    true:sql命令的提交(commit)由驱动程序负责

    false:sql命令的提交由应用程序负责,程序必须调用commit或者rollback方法

    如果参数设为false,记得在执行完所有操作语句后调用commit方法

    如果程序在执行更改数据过程中出现异常,数据没有提交,数据库数据也不会有变化,但是要在catch中进行回滚conn.rollback();否则操作的表会处于死锁状态

    如果要保留某些更改,也要回滚某些更改,那就要在需要保留更改的地方设置保存点(SavePoint)SavePoint sp=conn.setSavePoint();然后使用回滚方法,在里面传入保存点对象就可以了conn.rollback(ps);然后再conn.commit();提交一下

    如果在读取数据中出现脏读幻读等数据问题,可以通过设置事务的隔离级别conn.setTransactionIsolation(Connection.Transaction_Serialize);//最高级别

    数据回滚失败有可能是数据库引擎不支持

    MySQL命令窗内通过  show create table user 查看数据库引擎

    跨多个数据源的事务,使用JTA容器实现事务

    JTA容器分两个阶段实现:1、容器向指向的数据库发出准备提交指令,如果有其中某一数据库要求回滚,则容器对所有数据库执行回滚;2、如果没有数据库需要回滚,容器便对所有数据库发出提交指令

  • 相关阅读:
    Oracle 性能优化之一二
    要一直知道什么是最重要的
    c# 当引用类型作为方法的参数
    BI测试工具之跨数据库数据对比,支持oracle,sqlserver
    c#分页读取GB文本文件
    Merge compare columns when null
    Oracle常用plsql
    quick sort java version
    基于元数据的ETL系统
    Centos 6.5(64bit)上安装Vertica single node
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4642314.html
Copyright © 2020-2023  润新知