即SqlSession中的缓存是怎样组织的?由于MyBatis使用SqlSession对象体现一次数据库的会话,那么,对于会话级别的一级缓存也应该是在SqlSession中控制的。现实上, MyBatis只是一个MyBatis对外的接口,SqlSession将它的工作交给了Executor执行器这个角色来完成,负责完成对数据库的各种操作。当创建了一个SqlSession对象时,MyBatis会为这个SqlSession对象创建一个新的Executor执行器,而缓存信息就被维护在这个Executor执行器中,MyBatis将缓存和对缓存相关的操作封装成了Cache接口中。SqlSession、Executor、Cache之间的关系如下列类图所示:
MyBatis二级缓存的一个重要特点:即疏松的Cache缓存管理和维护
欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |