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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis学习-XML映射文件(上)相关的知识,希望对你有一定的参考价值。

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映射文件(上)的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis Mapper XML 文件 的学习详解

MyBatis学习总结---映射文件及引入方式

MyBatis学习 之 二SQL语句映射文件resultMap

MyBatis学习XML配置文件之SQL映射的XML文件

MyBatis学习存档——mapper.xml映射文件

Mybatis学习--Mapper XML文件