码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis学习(三)-XML映射文件(上)

时间:2018-01-08 18:37:57      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:value   bat   图表   创建   conf   需要   mil   语句   executor   

XML映射文件即Mapper XML

有下列几个顶级元素:

  1. cache - 给定命名空间的缓存配置
  2. cache-ref - 缓存配置的引用
  3. resultMap - 描述结果集,是最强大也是最复杂的元素(没有之一)
  4. sql - 可复用的语句块
  5. insert
  6. update
  7. delete
  8. select
    (从前往后说,本次是cache、cache-ref)

MyBatis缓存机制

# 一级缓存(默认开启,SqlSession级别的缓存)
我们通过MyBatis每连接一次数据库就会创建一个SqlSession表示一次数据库会话。MyBatis默认在SqlSession中建立一个简单的HashMap缓存,用于存放每次的查询结果。下图表示了一次查询的简单流程。

技术分享图片
我们执行一次CRUD时,SqlSession会把工作都交给Executor执行器去完成。Cache缓存信息也是由Executor执行器进行维护的。下图展示了SqlSession、Executor、Cache之间的关系。
技术分享图片
关于一级缓存的论述在http://blog.csdn.net/luanlouis/article/details/41280959中 描述的相当清晰明了,感谢亦山!!!(上面的两张图也是其中的,挪用一下哈)。


    # 二级缓存(没有默认开启,应用级别的基于命名空间的缓存)
    首先在xml配置文件(config.xml)中开启总开关:
    <settings>
      <setting name="cacheEnabled" value="true" />
    </settings>
    其次在XML映射文件中加入 <cache />
    <mapper namespace="com.smileliu.pra.dao.UserMapper">
    <cache/>
  </mapper>
    注意:需要给要缓存的对象执行序列号(implement Serializable)
    如果要在某个查询上禁用,或者刷新二级缓存,可以在select上加入属性useCache="false",flushCache="true"。

MyBatis学习(三)-XML映射文件(上)

标签:value   bat   图表   创建   conf   需要   mil   语句   executor   

原文地址:http://blog.51cto.com/liusw94/2058717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!