zoukankan      html  css  js  c++  java
  • 了解mybatis缓存机制

    作用: 使用缓存, 我们可以避免频繁的与数据库进行交互, 尤其是在查询越多、缓存命中率越高的情况下, 使用缓存对性能的提高更明显。

    缓存种类:mybatis缓存分为一级缓存和二级缓存,默认开启一级缓存,而且不能关闭。

    一级缓存作用域:作用域在sqlSession在创建和关闭之间:

    一级缓存测试:在一级缓存作用域中,根据相同username查询两次:

    输出:

    不同的username查询两次:

    输出:

    结论:在一级缓存作用域中做查询操作,若作用域中存在数据,则直接取出,不走数据库。若没有则走数据库。

    一级缓存失效情况:
    1.查询不同的东西
    2.增删改的操作
    3.查询不同的Mapper.xml
    4.手动清理缓存

    使用二级缓存:
    1、mybatis-config.xml文件中开启全局缓存:
    <setting name="cacheEnabled" value="true"/>
    2、在对应的Mapper.xml文件中加入:
    <cache/>
    3、sql语句标签中可以使用二级缓存或不使用,默认是使用的。
    小结:只要开启二级缓存,使用同个mapper有效;所有数据都会放在一级缓存中;只有当会话提交或关闭才会放到二级缓存中。

    自定义缓存:(Ehcache)知道存在这个东西就行。
    将来用redis做缓存。

  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/wmskywm/p/13616146.html
Copyright © 2011-2022 走看看