-
mybatis一级缓存设计特点:在同一个session内
不过期:缓存没有过期时间
不更新:发生写操作时是直接清空缓存,而不是更新缓存
不限制:缓存的key值个数不限制
查看全部 -
mybatis和sping整合,在有事务的情况下,两次查询是同一个sqlsession(底层通过threadlocal实现),所以可以命中一级缓存,而没有事务控制的时候则是分别开启一个sqlsession
查看全部 -
mybatis一级缓存实际上就是一个hashmap
查看全部 -
会导致mybatis一级缓存清空的几种情况:
1、session关闭
2、session commit和rollback
3、session update、insert、delete(查询和更新的不是同一张表也会清空所有的以及缓存)
4、session主动调用clearCache
查看全部 -
mybatis命中缓存的原则(必须同时满足):
1、statementid:即mapper接口中的方法,也就是xml文件中select语句的id
2、查询参数值必须相同
3、分页参数(实际上是2的一种特殊情况)必须相同
4、sql语句必须相同(where 1=1 and a=1和where a=1是两个不同的sql语句)
5、mybatis配置文件中的enviroenment值
查看全部 -
update()执行select标签不会报错。
mybatis产生缓存并不是根据查询标签的类型(select或者update等标签)决定的。与sqlSession调用的方法有关。
查看全部 -
mybatis使用缓存的条件:
条件一:查询语句的id必须相同。
条件二:查询的参数必须相同。
条件三:分页参数必须相同。
条件四:sql语句必须相同。
条件五:要求执行的环境必须相同。
查看全部 -
自定义缓存使用redis查看全部
举报