find:先从session缓存中查找,没有数据就从数据库查找(忽略二级缓存),找不到记录,返回NULL;
laod:先从session缓存中查找,然后建立代理类,没有数据就从二级缓存中查找,再没有就从数据库查找,找不到就抛出异常;
get:先从session缓存中查找,没有数据就从二级缓存中查找,再没有就从数据库查找,找不到返回NULL;
注:get方式查找时,如果之前已经被load加载过(生成了代理类),只是没有加载数据,那么GET会把数据填充到代理类,返回的结果也就是代理类而不是实体类。
本文详细介绍了MyBatis中的find、load和get三种查询方法的区别,包括它们如何使用一级缓存(session缓存)和二级缓存来提高查询效率。通过对比这三种方法,读者可以更好地理解MyBatis的缓存机制。
find:先从session缓存中查找,没有数据就从数据库查找(忽略二级缓存),找不到记录,返回NULL;
laod:先从session缓存中查找,然后建立代理类,没有数据就从二级缓存中查找,再没有就从数据库查找,找不到就抛出异常;
get:先从session缓存中查找,没有数据就从二级缓存中查找,再没有就从数据库查找,找不到返回NULL;
注:get方式查找时,如果之前已经被load加载过(生成了代理类),只是没有加载数据,那么GET会把数据填充到代理类,返回的结果也就是代理类而不是实体类。

被折叠的 条评论
为什么被折叠?
区别&spm=1001.2101.3001.5002&articleId=22242835&d=1&t=3&u=6bb82f240eb44ca78a22542125f5b025)