Mybatis 缓存

MyBatis缓存

MyBatis

MyBatis是一个持久化框架, 用于封装数据库操作,通过XML的方法配置数据库和实体对象的映射关系。通过动态代理的方式生成数据库操作对象,能够自动解析查询返回结果并将结果属性注入到实体对象。

缓存的作用

缓存是保存查询结果到系统内存中,减少重复请求数据库的开支,提高系统的性能。

MyBatis缓存分为一级缓存和二级缓存,默认开启一级缓存。

一级缓存

同一SqlSession对象,参数和语句一样的SQL只执行一次,缓存过期列外

二级缓存

多个sqlSession共享的缓存,存储基于一个Mapper级别,也就是会保存一个mapper对象的查询结果,供多个sqlSession使用

使用缓存的优缺点

优点 能够提升一定的性能,减少数据查询压力

缺点 不能分布式、容易造成数据过期、增加额外的配置,持久化困难,不易于解耦。

有什么更好的解决方案吗?

世界上没有最好的解决方案,至少相对当前情形最合理,可以从成本、系统复杂度和可维护性多方面考虑。

如果需要分布式,持久化,可以使用redis、ecache。

如果只图简单、可定制性高 new一个map就可以实现大致的功能了。

posted @ 2021-06-10 00:08  danaohu  阅读(64)  评论(0)    收藏  举报