前段时间忙项目,有很多多表联合查询,而其中很多sql是可以复用的,当时为赶进度都是复制粘贴完事,最近有一个通用很多的sql要求各种额外添加表,导致需要到处修改sql还不知道是否完全修改到,所以就在想是不是可以单独的把所有共用的sql按表,按模块提出成一个单独的mapper其它涉及到的模块直接使用,最后通过自己的测试完整使用,特记录如下,让有需求的人参考。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 以下sql会在当前mapper和其它mapper被多次使用,单独存在此mapper会让人感觉比较乱-->
<mapper
    namespace="com.xsq.test.mapper.CombinatorialnformationMapper">
    <sql id="findNameA">
        SELECT
        ps as   code,
       pn as   name
        FROM
        A
    </sql>

<sql id="findNameB">
        SELECT
        psn as code,
        pn as name
        FROM
        B
    </sql>

<select id="query"
        resultType="com.xsq.test.User">

<include refid="findNameA"></include>

UNION

<include refid="findNameB"></include>

</select>

</mapper>

修改后的mapper如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 共用mapper-->
<mapper
    namespace="template">
    <sql id="findNameA">
        SELECT
        ps as   code,
       pn as   name
        FROM
        A
    </sql>

<sql id="findNameB">
        SELECT
        psn as code,
        pn as name
        FROM
        B
    </sql>

</mapper>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
    namespace="com.xsq.test.mapper.CombinatorialnformationMapper">

<select id="query"
        resultType="com.xsq.test.User">

<include refid="template.findNameA"></include>

UNION

<include refid="template.findNameB"></include>

</select>

</mapper>

至此,各种SQL的修改只需要在对应文件修改就OK不用到处去修改

myBatis mapper.xml 文件共用相关推荐

  1. mybatis mapper.xml 文件共用_MyBatis 缓存原来是这么一回事儿!| 原力计划

    作者 | Lw中责编 | 夕颜出品 | CSDN(ID:CSDNnews) 什么是缓存? 缓存就是存储数据的一个地方(称作:Cache),当程序要读取数据时,会首先从缓存中获取,有则直接返回,否则从其 ...

  2. mybatis mapper xml文件的导入方式和查询方式

    mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis  mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...

  3. mybatis入门(三)之Mapper XML 文件

    转载自   mybatis Mapper XML 文件 Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单 ...

  4. SpringBoot+Mybatis加载Mapper.xml文件的两种方式

    前言:我们在平常工作中用到mybatis去加载Mapper.xml文件,可能mapper文件放的路径不一样,由此我们需要配置多个路径,幸运的是Mybatis支持我们配置多个不同路径.现在介绍两种方法. ...

  5. springboot mybatis 热加载mapper.xml文件(最简单)

    大家好,我是烤鸭: 今天介绍一下springboot mybatis 热加载mapper.xml文件. 本来不打算写的,看到网上比较流行的方式都比较麻烦,想着简化一下. 网上流行的版本. https: ...

  6. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  7. mybatis 鉴别其_MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询

    MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询 白玉 IT哈哈 支持的 JDBC 类型 为了未来的参考,MyBatis 通过包含的 jdbcType 枚举型,支持下面的 ...

  8. Java数据持久层框架 MyBatis之API学习五(Mapper XML 文件)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

  9. Java数据持久层框架 MyBatis之API学习六(Mapper XML 文件详解)

    对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...

最新文章

  1. java js css 压缩工具_javascript和css文件的压缩(YUI Compressor)
  2. ZendStudio中,缺少gbk gb2312编码的解决办法
  3. Caffe学习系列(15):计算图片数据的均值
  4. Oracle从小白到大牛的刷题之路(建议收藏学习)
  5. 如何给FLV文件加字幕
  6. Gstreamer 搭建RTSP服务器(九)
  7. OpenStreetMap/Google/百度/Bing瓦片地图服务(TMS)
  8. VM虚拟机下载及安装教程
  9. I Want My Tears Back
  10. 电脑能登录微信,但网页打不开
  11. java gui 做闹钟,用JAVA怎样编写一个可以在eclipse中运行的闹钟程序?
  12. 现在还有必要安装第三方杀毒软件吗?
  13. php格林威治时间,PHP默认时间是格林威治时间。
  14. vmware虚拟机不能识别u盘/移动硬盘原因之一
  15. 荣耀手机鸿蒙系统手机,4部荣耀手机可升为鸿蒙系统,有你的手机吗?花粉的春天来了!...
  16. php仿qq聊天界面,jquery仿微信聊天界面
  17. oracle中ln函数,PLSQL LN用法及代码示例
  18. 2017年南海区青少年信息学奥林匹克竞赛(小学甲组)
  19. ESD和TVS管的区别
  20. 客户端连接WSUS服务器时代码80244010 windows更新遇到未知错误

热门文章

  1. 【时序聚类】Neurocomputing:Multivariate time series clustering based on common principal component analysi
  2. 【盟军敢死队:二战英雄修改器实现】【感慨一下古龙群侠传这个修改器的编写过程】
  3. (1)第一个应用程序
  4. 让同行都忍不住充值的营销方案,饭店只用一招当天锁定3百个会员
  5. 基因工程-2-基因工程工具酶
  6. 2023年9月数学建模:为什么发射卫星使用三级火箭?
  7. 信仰缺失下的迷茫 (白岩松)
  8. 最简单的WIN+R自定义快捷指令,清爽桌面。
  9. 【Python】scipy.spatial.Delaunay中文教程
  10. 拔掉U盘时提示无法停止使用通用卷问题如何解决