MySQL事务
事务的概念
一次性执行多条SQL语句,并且当有一条语句出问题时,直接相当于全部的SQL都失败
事务的作用
多条SQL语句,要么都成功要么都失败
主要用作与对MySQL数据库进行多条增删改操作
事务的语法(MySQL中)
begin (开启事务)
commit (提交事务)
rollback(滚回事务)
事务的四大特征
- 原子性 ----------- 要么成功,要么失败
- 一致性 ----------- 事务开始到结束之后数据库的完整性没有被破坏,保持一致
- 隔离性 ----------- 在高并发的情况下,事务与事务之间相互不影响
- 持久性 ----------- 一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改,一般使用redo日记来保存。
隔离四大类型
- 读取未提交(read-uncommit)---------事务与事务之间不会共享数据,会出现脏数据的问题
- 读取已提交(read-commit)----------事务与事务之间可以共享数据,解决的脏数据的问题
- 复读性(repeatable-read)----------事务之际可以用数据锁解决幻读的问题
- 序列化(Seralizeable)----------一般不推荐使用
事务在JDBC中的使用格式
Statement stmt = null;
try{
con.setAutoCommit(false);//开启事务
......
stmt=conn.createStatement();
stmt.addBatch(SQL语句);
stmt.addBatch(SQL语句);
stmt.addBatch(SQL语句);
......
con.commit();//try的最后提交事务
} catch() {
con.rollback();//回滚事务
}