Mybatis 缓存

Mybatis的缓存分为一级缓存和二级缓存。一级缓存基于同一个SqlSession,而在Service方法结束后,SqlSession关闭,一级缓存会被清空。二级缓存则存在于Mapper实例中,多个SqlSession共享,可配置缓存回收策略、刷新间隔和大小。开启二级缓存需要在全局配置和Mapper映射文件中设置,并可以通过useCache属性控制方法对缓存的使用。
摘要由CSDN通过智能技术生成

 Mybatis 缓存优点:

1、易于上手和掌握,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验。
2、sql写在xml里,便于统一管理和优化, 解除sql与程序代码的耦合。
3、提供映射标签,支持对象与数据库的orm字段关系映射
4、 提供对象关系映射标签,支持对象关系组建维护5、提供xml标签,支持编写动态sql。
6、速度相对于Hibernate的速度较快

 Mybatis 缓存缺点:


1、关联表多时,字段多的时候,sql工作量很大。
2、sql依赖于数据库,导致数据库移植性差。
3、由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。
4、对象关系映射标签和字段映射标签仅仅是对映射关系的描述,具体实现仍然依赖于sql。
5、DAO层过于简单,对象组装的工作量较大。
6、不支持级联更新、级联删除。
7、Mybatis的日志除了基本记录功能外,其它功能薄弱很多。
8、编写动态sql时,不方便调试,尤其逻辑复杂时。
9、提供的写动态sql的xml标签功能简单,编写动态sql仍然受限,且可读性低。


一级缓存

缓存存在的条件
  

存在要求    同一个SqlSession中,在没有收到改变该数据的请求之前!


缓存失效的条件

一    并不是同一个Sqlsession对象

二    在查询的过程中,两次的查询条件不同
三    在两次之间进行了增,删,改,操作
四    在两次之间自己进行了手动清空缓存

二级缓存<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值