MyBatis工作原理是什么?
可以说一下MyBatis的缓存吗?
一级缓存
MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直
接去查数据库。
二级缓存
二级缓存又称为“SessionFactory的缓存”,由于
SessionFactory对象的生命周期和应用程序的整
个过程对应,有可能出现并发问题,因此需要采
用适当的并发访问策略,该策略为被缓存的数据
提供了事务隔离级别。第二级缓存是可选的,是
一个可配置的插件,在默认情况SessionFactory
不会启用这个插件。
二级缓存中应用场合:
1 很少被修改的数据
2 不是很重要的数据,允许出现偶尔并发的数据
3 常量数据
MyBatis的懒加载和立即加载是什么?为什么默认是立即加载?
< setting name=“lazyLoadingEnabled” value=“true” /> < !-- 延迟加载 -->
< setting name=“aggressiveLazyLoading” value=“false” />< !-- 立即加载 -->
个人观点:
1.懒加载不利于缓存
2.懒加载不利于序列化
vo是什么?
V value view O object
pojo与表对应,vo自己根据需要,业务自己定义,要注意不能包含集合。
用VO映射数据