欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL和JDBC事物

程序员文章站 2022-08-06 22:03:31
mysql和jdbc事物 (一)事物 一、相关概念 1、事物的定义 一个事务是作用于一个的一个或多个数据表的一组动作,这组动作要么全部执行,要么全部不执行,如果其中一个动作...

mysql和jdbc事物

(一)事物
一、相关概念
1、事物的定义
一个事务是作用于一个的一个或多个数据表的一组动作,这组动作要么全部执行,要么全部不执行,如果其中一个动作失败,则所有动作恢复到动作执行前状态
例如:银行的账户资金转移

2、事物的四大特性(acid)
(1)原子性(atomicity):
事务中所有操作是不可再分割的原子单位。事务中所有操作要么全部执行成功,要么全部执行失败。
(2)一致性(consistency):
事务执行后,数据库状态与其他业务规则保持一致。如转账业务,无论事物执行成功与否,参与转账的俩个账号余额之和应该是不变的。
(3)隔离性(isolation):
隔离性是指在并发操作中,不同事物之间应该隔离开来,使每个并发中的事物不会相互干扰。
(4)持久性(durability):
一旦事物提交成功,事务中所有的数据操作都必须被持久化到数据库中,即使提交事务后,数据库马上崩溃,在数据库重启时,也必须能保证通过某种机制恢复数据。

二、在数据库中操作事物
1、mysql中

开启事物:start transaction
结束事物:commit或rollback

(三)在jdbc处理事物
在jdbc处理事务,都是通过connection完成的。
并且同一个事务的所有操作,都是通过同一个connection对象。

一、jdbc中的事务
1、connection中三个与事务相关的方法:
(1)setautocommit(boolean):设置是否自动提交事务,如果true(默认值为true)表示自动提交,也就是每条执行的sql语句都是一个单独的事务,如果设置false,那么就相当于开启了事务了;
(2)commit():提交并结束事物;
(3)rollback():回滚结束事物;
2、一般格式
jdbc处理事务的格式:

connection conn = drivermanager.getconnection(url,user,password);
try{
      conn.setautocommit(false);//开启事务
      ...
      ...
      ...
      conn.commit();//提交事务
}catch{
      con.rollback();//回滚事务
}