什么是事务
首先事务是指的一些列操作,这一系列的操作是一个整体,最后通过向系统提交,结果只能是成功或者失败,成功就是提交成功,失败就需要回滚到初始位置。
事务必须满足四个属性,简称为ACID:
1、原子性(Atomicity)
事务是一些列操作的整体,所以是不可分割的,对于结果来说只能是成功或者失败回滚;要么执行,要么失败
2、一致性(Consistency)
所有事务对于数据库读取结果都是一致的,也就是一个事务对一个数据进行操作,结果对于所有的事务读取来说都是一致性的
3、隔离性(Isolation)
一个事务对于数据库进行修改,别的事务来说就不能操作,保证事务的隔离性
4、持久性(Durability)
只要事务结果提交成功,那么提交在数据库中的数据就不可能丢掉,会永久保存
[外链图片转存失败(img-Msso6ThM-1568604157008)(https://github.com/CyC2018/CS-Notes/raw/master/notes/pics/417bc315-4409-48c6-83e0-59e8d405429e.jpg)]
从上图可得到的信息:
- 只要事务满足了一致性要求,那么事务执行的结果就是正确的;
- 如果没有出现并发的情况,此时隔离性一定是满足的,所以一致性的结果满足的;
- 如果出现了并发的情况,那么隔离性和原子性一定要满足,才能得到一致性的结果;
- 持久性一般是为了应对数据库崩溃的情形
Java中事务的使用
Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。
1、传统JDBC操作流程:
1).获取JDBC连接 2).声明SQL 3).预编译SQL 4).执行SQL 5).处理结果集
6).释放结果集 7).释放Statement 8).提交事务 9).处理异常并回滚事务 10).释放JDBC连接
https://blog.csdn.net/weixin_37934748/article/details/82774230