欢迎光临散文网 会员登陆 & 注册

千锋教育2023版Java面试宝典Java面试200题(含美团、字节、阿里大厂真

2023-07-15 14:51 作者:1回忆中的回忆1  | 我要投稿

一级缓存是基于sqlsession默认开启的,在操作数据库时需要构造SqlSession对象,在对象中有一个HashMap用于存储缓存数据。不同的SqlSession之间的缓存数据区域是互相不影响的。

一级缓存作用是sqlsession范围的,在同一个sqlsession中执行两次相同的sql时,第一次得到的数据会缓存放在内存中,第二次不再去数据库获取,而是直接在缓存中获取,提高效率。

如果执行了增删改并提交到数据库,mybatis是会把sqlsession中的一级缓存清空的,这样是为了数据的准确性,避免脏读现象。

二级缓存 :

二级缓存是基于mapper的namespace作用域,但多个

sqlsession操作同一个namespace下的sql时,并且传入的参数也相同,执行相同的sql语句,第一次执行完毕后会将数据缓存,这就是二级缓存。

二级缓存同样是使用HashMap进行数据存储。相比一级缓存

SqlSession,二级缓存的范围更大,多个Sqlsession可以共用二级缓存,二级缓存它是可以跨越多个sqlsession的。

千锋教育2023版Java面试宝典Java面试200题(含美团、字节、阿里大厂真的评论 (共 条)

分享到微博请遵守国家法律