介绍MySQL和JDBC的事务控制(TCL)

文 / @WordPress主题

介绍MySQL和JDBC的事务控制(TCL)

一、MySQL的事务控制(Transaction Control Language)

1.事务的特性(ACID)

事务指的是逻辑上的一组操作,组成这组操作的逻辑单元要么一起成功,要么一起失败。

- 原子性(atomicity):强调事务不可分割。
- 一致性(consistency):强调的是事务的执行的前后,数据的完整性要保持一直。
- 隔离性(isolation):一个事务的执行不应该受到其他事务的干扰。
- 持久性(durability):事务一旦结束(提交/回滚)数据就持久保持到了数据库。

2.MySQL的事务控制

- 设置手动提交:set autocommit=false;
- 回滚 rollback;
- 提交 commit;

3.mysql事务演示

在原有的emp表中插入一条ename为mary的数据,设置手动提交,再进行回滚,查看是否插入成功。如果使用commit进行提交就无法回滚成功。

二、JDBC的事务控制

1.JDBC事务简介

默认事务提交策略:一条命令自成一个完整事务。需求:各个逻辑单元要么一起成功,要么一起失败。(如转账)

2.JDBC事务的API

- conn.setAutoCommit(false); //将JDBC事务设置手动提交
- conn.commit();
- conn.rollback();

3.JDBC事务控制模拟

在原有的emp表中修改ename名为hellen的记录,将其job从leader修改为clerk,奖金commit从600降低至300。(模拟交易)

TrasactionDemo:

代码添加了JDBC事务来处理两条sql语句(一条正确,一条错误),两条sql语句都没有执行。如果不添加JDBC事务处理,那么其中一条正确的sql语句就会单独执行。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。