zoukankan      html  css  js  c++  java
  • 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、如果没有数据库需要回滚,容器便对所有数据库发出提交指令

  • 相关阅读:
    Win10家庭版无法远程桌面连接的解决方法
    分分钟用上C#中的委托和事件之窗体篇
    分分钟用上C#中的委托和事件
    Fiddler工具使用介绍三
    Fiddler工具使用介绍二
    Fiddler工具使用介绍一
    Hexo主题开发
    IDEA 编译 Jmeter 4.0 ( 二次开发_1 )
    Pinpoint 安装部署
    接口测试总结
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4642314.html
Copyright © 2011-2022 走看看