zoukankan      html  css  js  c++  java
  • Mybatis缓存

    一级缓存

    • 一级缓存为SqlSession缓存,二级缓存为SqlSessionFactory缓存,缓存仅作用于同一namespace
    • SqlSession缓存可以刷新(清空),<select>标签配置中使用flushCache="true"属性
    • 缓存是相互隔离的,不同SqlSession对象之间不共享缓存
    • 数据发生变动后会清除缓存,在数据变动频繁的地方不适宜使用缓存
    • Mybatis会通过算法生成键,与查询结果数据一起放入Map中,读缓存就是读取Map

    二级缓存

    • 一级缓存为SqlSession缓存,二级缓存为SqlSessionFactory缓存,缓存仅作用于同一namespace
    • SqlSessionFactory有两种开关
    • 总开关在mybatis-config.xml中<setting name="cacheEnabled" value="true"/>默认打开
    • 分开关在对应的namespace中,默认关闭,使用<cache/>标签即可打开,其信徒众多
    1. type:缓存的实现"类型",默认PERPETUAL,org.apache.ibatis.cache.impl.PerpetualCache,可扩展或替换
    2. eviction:"撤退"的方式,LRU(最近最少使用,默认)、FIFO(先进先出)、SOFT(gc软引用)、WEAK(gc弱引用)
    3. flushInterval:刷新间隔,默认不设置,只有在数据变动时自己刷新;当设置后则按时间刷新
    4. size:缓存数量,默认1024
    5. readOnly:默认false,false表示可写,会反序列化复制一份对象进行读写,较为安全
    6. blocking:阻塞,默认false,不阻塞的方式在并发查询时可能会穿透缓存查询数据库,true会在查询前加锁保证若命中就不查询
  • 相关阅读:
    ExtJs中动态加载机制研究(转)
    ExtJs4 学习3 combox自动加载的例子
    Extjs 4学习2
    ExtJS 4学习
    javascript学习(知识点整理)
    ExtJS智能提示工具spket安装与破解
    eclipse慢 优化(转)
    疯狂学习java web5(SSI框架)
    疯狂学习java web4(jsp)
    疯狂学习java web3(javaScript)
  • 原文地址:https://www.cnblogs.com/duduchong/p/13304099.html
Copyright © 2011-2022 走看看