mysql------事务
来源:互联网 发布:网络球机接线图 编辑:程序博客网 时间:2024/06/03 17:28
事务
一、概念
数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。(事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。)
例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。这就是一个事务。
二、事务的语句
开始事务: start transaction
提交事务: commit
回滚事务:rollback如果在操作时出错,应该从新开始一个事务。
回滚的话就相当于中间的操作结果撤销,提交即有效
写在事物之外的语句不受其控制
示例:
<span style="font-size:14px;">DELETE FROM stud WHERE id='P006';START TRANSACTION;DELETE FROM stud WHERE id='P011';UPDATE stud SET NAME='abc' WHERE id='P003';ROLLBACK / COMMIT;</span>说明:从"START TRANSACTION"开始 到 “ROLLBACK; 或 COMMIT; ”,这中间的那么语句是一个整体,如果执行 “ROLLBACK”,那么这些动作都会回滚(撤消)。如果执行“COMMIT”,就全部执行成功。
三、属性
1、原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。
2、一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)。
3、隔离性(isolcation):一个事务处理对另一个事务处理的影响。
4、持续性(durability):事务处理的效果能够被永久保存下来 。
5、一个事务只会有一个结果:要么成功、要么失败。
在Java中写事务,就要用异常的方式,前面用connection的对象调用setAutoCommit(false)使其不会自动提交
未出异常就调用commit()方法,出异常就在catch处调用rollback()方法
示例:
<span style="white-space:pre"></span>@Testpublic void hello2() throws Exception{//1 加载连接器(驱动) Driver ---高版本mysql可以省略Class.forName("com.mysql.jdbc.Driver");//2建立连接String url="jdbc:mysql://127.0.0.1:3306/myData?setUnicode=true&characterEncoding=utf-8";//采用指定编码Connection con=DriverManager.getConnection(url, "root", null);//3获取语句对象Statement state=con.createStatement();//4 对数据库进行操作(增删改查)--通过state对象try {con.setAutoCommit(false);String sql="INSERT INTO person VALUES(7,'小龙女',30,'0')";state.execute(sql);//增sql="delete from person where sname='王五'";state.execute(sql);//删sql="update person set sname='东方不败' where sname='玉芬'";state.execute(sql);//改con.commit();System.out.println("事务提交了");} catch (Exception e) {con.rollback();System.out.println("事务回滚了");<pre name="code" class="java" style="font-size: 18px; line-height: 26px;"><span style="white-space:pre"></span>con.close();}}
0 0
- mysql事务是事务
- mysql 事务
- mysql 事务
- mysql事务
- Mysql 事务
- mysql事务
- mysql事务
- mysql 事务
- mysql事务
- mysql 事务
- mysql事务
- MySQL事务
- mysql---事务
- MySQL事务
- Mysql事务
- mysql事务
- mysql-事务
- Mysql事务
- 新建jsp文件的时候让文件编码默认为UTF-8
- HDU 5752 Sqrt Bo(水~)
- gdb 跟踪调试命令整理
- 微信 图文消息
- 关于未捕获异常的处理(WPF)
- mysql------事务
- POJ3273 Monthly Expense 二分
- eclipse关联spring源码
- 【华为 OJ 】求小球落地5次后所经历的路程和第5次反弹的高度
- 【MyBatis框架】mapper配置文件-关于动态sql
- 找不到winapifamily.h
- UrlRewriteFilter使用说明
- 设置ListView中的所有Item均不可点击
- fastjson使用方法简析