<small id='Ngubyv'></small> <noframes id='nMKxW21rq'>

  • <tfoot id='tVdoMEGL'></tfoot>

      <legend id='QlwrA'><style id='rpbsaUw2cf'><dir id='m6pQgu'><q id='dXsY9W'></q></dir></style></legend>
      <i id='delzrJ'><tr id='rmEcyZdJHV'><dt id='t4LQxIu'><q id='94jBoVN'><span id='Z2U5'><b id='8DB3gTz'><form id='maC3c517'><ins id='HGfz9'></ins><ul id='0yfqWXQPUn'></ul><sub id='a05o'></sub></form><legend id='Vku8QS4'></legend><bdo id='10cHF5WEp'><pre id='bWEN'><center id='v9B2N6Q'></center></pre></bdo></b><th id='kqCxSlu1'></th></span></q></dt></tr></i><div id='U3Tz'><tfoot id='q6EuihXk'></tfoot><dl id='uf4Jg3'><fieldset id='plPN1aHhg'></fieldset></dl></div>

          <bdo id='dqnbXKeIA'></bdo><ul id='X1328siL'></ul>

          1. <li id='3pHwk'></li>
            登陆

            mybatis缓存

            admin 2019-11-06 244人围观 ,发现0个评论

            Mybatis中有一级缓存和二级缓存,默许情况下一级缓存是敞开的,并且是不能封闭的。一级缓存是指 SqlSession 等级的缓存,当在同一个 SqlSession 中进行相同的 SQL 句子查询mybatis缓存时,第2次今后的查询不会从数据库查询,而是直接从缓存中获取,一级缓存最多缓存 1024 条 SQL。二级缓存是指能够跨 SqlSession 的缓存。是 mapper 等级的缓存,关于 mapper 等级的缓存不同的sqlsession 是能够同享的。

            1. Mybatis 的一级缓存原理 ( sqlsession 等级 )

            第一次宣布一个查询 sql,sql 查询成果写入 sqlsession 的一级缓存中,缓存运用的数据结构是一个 map。 key:MapperID+offset+lmybatis缓存imit+Sql+一切的入参 value:用户信息 同一个 sqlsession 再次宣布相同的 sql,就从缓存中取出数据。假如两次中心呈现 commit 操作(修正mybatis缓存、增加、删去),本 sqlsession 中的一级缓mybatis缓存存区域悉数清空,下次再去缓存中查询不到所以要从数据库查询,从数据库查询到再写入缓存。

            2. 二级缓存原理 ( mapper 根本 )

            二级缓存的规模是 m二字网名apper 等级(mapper同一个命名空间),mapper 以命名空间为单位创立缓存数据结构,结构是 map。mybatis 的二级缓存是经过 CacheExecutor 完成的。CacheExecutor其实是 Executor 的署理目标。一切的查询操作,在 CacheExecutor 中都会先匹配缓存中是否存在,不存在则查询数据库。 key:MapperID+offset+limit+Sql+一切的入参 详细运用需求装备:

            1. Mybatis 大局装备中启用二级缓存装备
            2. 在对应的 Mapper.xml 中装备 cachmybatis缓存e 节点
            3. 在对应的 select 查询节点中增加 useCache=true
            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP