事务是指作为单个逻辑工作单元執行的一组相关操作这些操作要求全部完成 或者全部不完成。使用事务是为了保证数据的安全有效
事务有一下四个特点:(ACID)
1、原子性(Atomic):事务中所有数据的修改,要么全部执行要么全部不执行。
2、一致性(Consistence):事务完成时要使所有所有的数据都保持一致的状态, 换言之:通过事务进行的所有数据修改必须在所有相关的表中得到反映。
3、隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问
4、持久性(Durability):保证事务对数据库的修改是持久有效的,即使发生系统故障 也不应该丢失。
当事务之间发生并发时有幾个隔离级别
丢失更新:两个事务同时存储, 一个存储 100 一个存储 200,最终可能至存储了 200 或者
100那另一个的更新就没成功,即结果不为预想的 300
脏读:事务 T1 更新了一行数据还没有提交所做的修改,T2 读取更新后的数据T1 回滚,T2
读取的数据无效这种数据称为脏读数据。
不可重複读:事务 T1 读取一行数据T2 修改了 T1 刚刚读取的记录,T1 再次查询
发现与第一次读取的记录不相同,称为不可重复读
幻读:事务 T1 读取一条帶 WHERE 条件的语句,返回结果集T2 插入一条新纪录, 恰好也是 T1 的
WHERE 条件T1 再次查询,结果集中又看到 T2 的记录新纪录就叫 做幻读。
非法退出 意外嘚断电l
rollback 只能对未提交的数据撤销已经 Commit 的数据是无法撤销的,因为 commit 之后已经持久化到数据库中
添加数据 可以手写也可以从别的表中获取嘚);àinsert into 表名 values(和表结构顺序和个数和类型一致的数据 insert into
表名(指定列名) values(和指定的列个数、顺序、类型一致的列数据)
转自尚学堂学员的Java面试准备笔记--陸同学,上海尚学堂Java培训24期学员已经入职上海企业,月薪11K起步
(1)原子性(Atomicity):一个事务必须被視为一个不可分割的最小工作单元整个事务中的所有操作要么全部提交成功,要么全部失败回滚对于一个事务来说,不可以只执行其Φ的一部分操作
(2)一致性(Consistency):数据库总是从一个一致性的状态转到另一个一致性的状态。
拿转账来说假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账转几次账,事务结束后两个用户的钱加起来应该还得是5000这就是事务一致性。
(3)隔离性(Isolation):通常来说一个事务所做的修改在最终提交之前,对其他事务是不可见的
(4)持久性(Durability):一旦事务提交,则其所做的修改就会永久的保存到数据库中不会因为系统故障等情况而丢失所做的修改。