MyBatis的缓存分为两级

一级缓存被称为数据库连接会话级别的缓存,二级缓存被称为SQL语句级别缓存。一级缓存的作用域默认是一个SqlSession。Mybatis默认开启一级缓存。也就是在同一个SqlSession中,执行相同的查询SQL,第一次会去数据库进行查询,并写到缓存中,第二次以后是直接去缓存中取。

数据库的脏读问题

脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的,值得注意的是,脏读一般是针对于update操作的。

MyBatis的缓存的脏读问题

因为脏读只要是update操作造成的,而MyBatis的缓存针对的是select操作,所以MyBatis的缓存的脏读问题即便不存在。

标签: none

添加新评论