spring事物
spring事物其实就是对数据库事物的一种支持,没有数据库事物的话,spring本身是不能提供事物支持的;
在最开始使用原始的jdbc连接数据库进行炒操作是, 获取连接后可以使用connection.setAutoConmmit(false)
来关闭自动提交, 在最后通过connection.commit来确定提交事物,或是connection.rollback()来回滚事物;
而spring通过在相关的方法或类上面加上@transacntional 表示,spring再启动的时候会自动扫描这些类和方法,
并为其生成代理;
--------------------------------------------------------------------------------------------------
脏读:
当事物1 对数据库数据进行修改后,还未提交,此时事物2 对数据进行读取, 如果这时候事物一进行了回滚,
那么事物2 读取到的就是脏数据;
幻读:
第一个事物对一定范围的数据进行批量读取,第二个事物在这个范围里新加了一条数据,这时候事物1 就会丢失对新加
数据的读取;
不可重复读:
在一个事物中对某个数据读取了两次,但在两次之间其他事物对数据进行了修改, 这时两次读取到的数据可能是不一样
的;
--------------------------------------------------------------------------------------------------
事物隔离:
spring默认使用数据库的默认事物隔离级别,最高的事物隔离级别是顺序执行,但是这也是代价最高的,事物被处理成
顺序执行的;
--------------------------------------------------------------------------------------------------