事务:
Transaction
完整的过程
数据库中才有事务这个概念
数据的非查询操作
事--》事情 做一件事情有可能影响多个对象
务--》任务 要么完成了,要么没完成...
一个可能影响多个对象的事情,要么完成了,要么没完成。
* 什么是事务:事务是一次完整的事情,有一条及以上sql语句组成,这些sql语句有一个特点要么全部成功,要么全部失败。
数据库:CRUD 增删改查
特点:称为ACID 数据库四大特性
1.最小单元 -原子性 称为不可再分割
eg:必须由两条sql语句才能完成一次删除部门的操作;
2.一致性 -数据改变之前和改变之后的状态一致
eg:张三给李四转500元,两条sql,张三-500,李四+500.
3.持久性 -数据修改完毕后,应该是一个持久状态存在数据库中,而不是临时状态;
eg:张三给李四转10000,张三-10000,李四+10000,都对,但是过5分钟没了就违反了持久性
4.隔离性 -当一个事务来占用某一个资源的时候,其余的事务只能进行等待,等待当前的事务释放对于当前资源的占用。
eg:微信支付宝ATM同时取一张银行卡里的钱,微信在取,别的就不能取了只能等待。
* 如果在查询数据的时候,加了for update,这个就是为查询加上锁定事务,意思就是我操作完成后,别人才能操作当前锁定的数据。
eg:select * from dept for update;
只有commit以后,别人才能操作当前数据。
AOP是OOP的补充,OOP是AOP的基础,AOP维护了健壮性
–在进行CUD时,要么加不上,要么删不了还不报错,因为开着OpenSessionInView,如果关了延迟加载dept数量又加不上来了,所以处理办法是:新建了一个spring-aop.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx=&#