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"。

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

时间: 2024-10-25 07:44:08

MyBatis学习(三)-XML映射文件(上)的相关文章

mybatis学习------打包xml映射文件

编译mybatis时,idea不会将mybatis的xml映射文件一起打包进jar,即在编译好的jar包里缺少mybatis映射文件,导致网站加载失败 为解决这个问题,可在mybatis对应module的pom.xml中,找到<build></build>,,在其中添加如下代码即可. <!--将mybatis的xml映射文件一起进行打包--> <resources> <resource> <directory>src/main/jav

Mybatis学习--Mapper.xml映射文件

JAVA%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%BC%96%E7%A8%8B%E2%80%94%E2%80%94JAVA%E5%86%85%E5%AD%98%E6%A8%A1%E5%9E%8B [email protected]?????? http://auto.315che.com/baowobx7/qa23474433.htm?9n http://auto.315che.com/weizhi/qa23935473.htm?x7 http://auto.315che.c

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

MyBatis的强大,主要原于它强大映射功能,相对其它的jdbc,使用MyBatis,你会发现省掉很多代码.上一篇已经简单做出一个实例.今天就了解一下MyBatis的映射xml文件. 了解上一篇friendMapper.xml文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

Ibatis学习总结4--SQL Map XML 映射文件扩展

SQL Map XML 映射文件除了上文提到的属性还有一些其他重要的属性,下文将详细介绍这些属性. 缓存 Mapped Statement 结果集 通过在查询 statement 中指定 cacheModel 属性,可以缓存 Mapped Statement 中得到的查 询结果.Cache  model  是在 SQL  Map  XML  文件中定义的可配置缓存模式,可以使用 cacheModel 元素来配置. 1 <cacheModel id="product-cache"

MyBatis——Mapper.xml映射文件

Mapper.xml映射文件 转载:http://loveshisong.cn/mybatis/2015/01/22/MyBatis(%E4%B8%89)Mapper.xml%E6%98%A0%E5%B0%84%E6%96%87%E4%BB%B6.html 本文结构 select 语句简介 insert update delete 简介 Parameters 参数 ResultMap select 语句简介 查询语句是 MyBatis 中最常用的元素之一,先来个例子 <select id="

MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口

MyBatis Generator(MBG)的使用 MBG可以根据数据表生成对应的model.xml映射文件.mapper接口,只是简单的生成,还需要根据需求修改. 1.下载jar包 https://github.com/mybatis/generator/releases 解压后有3个jar包,只使用一个: 2.新建一个新的java项目,导入mybatis.jar.mybatis-generator-core.jar.数据库驱动. 3.src下新建config.xml http://mybat

Maven项目无法找到mybatis的xml映射文件

通常我们的xml映射文件会放在源码中,普通的java项目在编译时可以将src下的xml放到classes文件中. 但maven项目编译时是不会将xml放到classes文件中,从而导致我们的mybatis-config.xml找不到对应的xml映射文件. 解决方案: maven项目中建立resources资源目录,所有xml映射文件放入其中. 原文地址:https://www.cnblogs.com/JimKing/p/9783414.html

Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?

不同的 Xml 映射文件,如果配置了 namespace,那么 id 可以重复:如果没有配 置 namespace,那么 id 不能重复: 原因就是 namespace+id 是作为 Map<String, MapperStatement>的 key 使用的,如果没有 namespace,就剩下 id,那么,id 重复会导致数据互相覆盖. 有了 namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然 也就不同. 原文地址:https://www.c

Mybatis的配置文件和映射文件详解

一.Mybatis的全局配置文件 1.SqlMapConfig.xml是mybatis的全局配置文件,配置内容如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) --environment(环境子属性对象) ----transactionManager(事务管理) ----dataSource