事务

事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。例如银行转账,张三得到500,李四失去500,要么全部执行成功,或失败。

1.jdbc操作事务,获取一个Connetion

conn.setAutoCommit(false);开启事务,默认自动,设置手动提交

conn.commit();提交事务

conn.rollback()发生异常回滚

2.数据库操作事务

开启事务:start transaction;

事务提交:commit;

事务回滚:rollback;回到事务刚开始的样子

提交和回滚,事务结束

3.事务的特性

原子性,事务是一个不可分割的工作单位,要么全部成功,要么全部失败

一致性,使数据库从一个一致性状态换到另一个一致性状态。

隔离性。多个用户并发访问数据库时,当一个事务没提交时,其他事务操作不了。各个事务相互隔离

持久性,事务一旦提交,数据的改变是永久的

4.隔离性

脏读:指一个事务读取了 另一个未提交的事务

不可重复读:一个事务读取一个表的数据时,多次读取不同,一个事务读取了另一个事务的update的事务

虚读,幻读:读取了insert的数据

5.设置事务隔离级别:

read uncommitted 脏读,不可重复读,虚读都有可能发生    1这边事务没提交,2这边能看到

read commited   避免脏读。不可重复读,虚读都有可能发生 orale默认 

repeatable read 避免脏读,不可重复读。虚读都有可能发生 musql默认

serializable      避免脏读,不可重复读,虚读

查看隔离级别:select @@tx_isolation;

更改隔离级别:set tx_isolation='xxxxx';

你可能感兴趣的:(事务)