myBatis mapper.xml 文件共用
前段时间忙项目,有很多多表联合查询,而其中很多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 文件共用相关推荐
- mybatis mapper.xml 文件共用_MyBatis 缓存原来是这么一回事儿!| 原力计划
作者 | Lw中责编 | 夕颜出品 | CSDN(ID:CSDNnews) 什么是缓存? 缓存就是存储数据的一个地方(称作:Cache),当程序要读取数据时,会首先从缓存中获取,有则直接返回,否则从其 ...
- mybatis mapper xml文件的导入方式和查询方式
mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...
- mybatis入门(三)之Mapper XML 文件
转载自 mybatis Mapper XML 文件 Mapper XML 文件 MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单 ...
- SpringBoot+Mybatis加载Mapper.xml文件的两种方式
前言:我们在平常工作中用到mybatis去加载Mapper.xml文件,可能mapper文件放的路径不一样,由此我们需要配置多个路径,幸运的是Mybatis支持我们配置多个不同路径.现在介绍两种方法. ...
- springboot mybatis 热加载mapper.xml文件(最简单)
大家好,我是烤鸭: 今天介绍一下springboot mybatis 热加载mapper.xml文件. 本来不打算写的,看到网上比较流行的方式都比较麻烦,想着简化一下. 网上流行的版本. https: ...
- (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql
http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...
- mybatis 鉴别其_MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询
MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询 白玉 IT哈哈 支持的 JDBC 类型 为了未来的参考,MyBatis 通过包含的 jdbcType 枚举型,支持下面的 ...
- Java数据持久层框架 MyBatis之API学习五(Mapper XML 文件)
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
- Java数据持久层框架 MyBatis之API学习六(Mapper XML 文件详解)
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习 ...
最新文章
- java js css 压缩工具_javascript和css文件的压缩(YUI Compressor)
- ZendStudio中,缺少gbk gb2312编码的解决办法
- Caffe学习系列(15):计算图片数据的均值
- Oracle从小白到大牛的刷题之路(建议收藏学习)
- 如何给FLV文件加字幕
- Gstreamer 搭建RTSP服务器(九)
- OpenStreetMap/Google/百度/Bing瓦片地图服务(TMS)
- VM虚拟机下载及安装教程
- I Want My Tears Back
- 电脑能登录微信,但网页打不开
- java gui 做闹钟,用JAVA怎样编写一个可以在eclipse中运行的闹钟程序?
- 现在还有必要安装第三方杀毒软件吗?
- php格林威治时间,PHP默认时间是格林威治时间。
- vmware虚拟机不能识别u盘/移动硬盘原因之一
- 荣耀手机鸿蒙系统手机,4部荣耀手机可升为鸿蒙系统,有你的手机吗?花粉的春天来了!...
- php仿qq聊天界面,jquery仿微信聊天界面
- oracle中ln函数,PLSQL LN用法及代码示例
- 2017年南海区青少年信息学奥林匹克竞赛(小学甲组)
- ESD和TVS管的区别
- 客户端连接WSUS服务器时代码80244010 windows更新遇到未知错误
热门文章
- 【时序聚类】Neurocomputing:Multivariate time series clustering based on common principal component analysi
- 【盟军敢死队:二战英雄修改器实现】【感慨一下古龙群侠传这个修改器的编写过程】
- (1)第一个应用程序
- 让同行都忍不住充值的营销方案,饭店只用一招当天锁定3百个会员
- 基因工程-2-基因工程工具酶
- 2023年9月数学建模:为什么发射卫星使用三级火箭?
- 信仰缺失下的迷茫 (白岩松)
- 最简单的WIN+R自定义快捷指令,清爽桌面。
- 【Python】scipy.spatial.Delaunay中文教程
- 拔掉U盘时提示无法停止使用通用卷问题如何解决