全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Mybatis中 SQL语句复用

mapper.xml 中共用

mapper.xml 间共用

项目中也许我们会遇到一段sql语句被多个查询、增加等语句用到的情况,如何去偷懒呢,复用sql无疑是较好的选择

这里只提供简单的示范:

如果只是单表查询,并且希望共用的sql只会出现在同一个mapper.xml文件中,那么我们可以直接在

<mapper namespace="XXXXX"></mapper>

中写下面的业务代码

<sql id="unitSql">
    a.userId,a.legalCode,legalName,
    bidderCodeType,legalRole,
    licenseNo,DATE_FORMAT(licenseEndDate,"%Y-%m-%d") AS licenseEndDate,
    taxCertNo,DATE_FORMAT(taxCertEndDate,"%Y-%m-%d") AS taxCertEndDate,
    localTaxCertNo,DATE_FORMAT(localTaxCertEndDate,"%Y-%m-%d") AS localTaxCertEndDate,
    organNo,DATE_FORMAT(organCertEndDate,"%Y-%m-%d") AS organCertEndDate,
    legalRepresent,legalType,
    perresentPhone,legalIndustary,creditRate,
    countryRegion,legalUnitAddress,regionCode,registerProvince,
    a.regCapital,a.regCapCurRency,a.regUnit,
    registerCity,registerCounty,basicBank,basicBranchBank,
    basicAccountNo,basicAccountName,legalContact,legalContactPhone,
    legalContactAddress,legalWeb,legalZipCode,legalEmail,
    legalStatus
</sql>

然后引用

<select id="getTenderAgentById" parameterType="String" resultType="Map">
    select <include refid="unitSql"/>, -- 就是这句话引用 ,refid为共有sql语句id
    b.auditOpinion,b.createUser,
    b.createTime,
    b.lastUpdateUser,
    b.lastUpdateTime,
    b.disabled,b.infoStatus
    from P_legalUnit a, P_tenderAgent b
    where b.userId=#{userId} AND a.userId = b.userId AND b.disabled='0'
</select>

如果是连表查询,那么我们极有可能会希望有一个sql语句被多个mapper.xml引用的的方法,很简单。
我们可以新建一个mapper.xml文件(当然,这个mapper.xml要在你的扫描路径下,本文不赘述)。取名为common.xml

该文件内容为

<?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="common">
  <sql id="common.unitSql">
    a.userId,a.legalCode,legalName,
    bidderCodeType,legalRole,
    licenseNo,DATE_FORMAT(licenseEndDate,"%Y-%m-%d") AS licenseEndDate,
    taxCertNo,DATE_FORMAT(taxCertEndDate,"%Y-%m-%d") AS taxCertEndDate,
    localTaxCertNo,DATE_FORMAT(localTaxCertEndDate,"%Y-%m-%d") AS localTaxCertEndDate,
    organNo,DATE_FORMAT(organCertEndDate,"%Y-%m-%d") AS organCertEndDate,
    legalRepresent,legalType,
    perresentPhone,legalIndustary,creditRate,
    countryRegion,legalUnitAddress,regionCode,registerProvince,
    a.regCapital,a.regCapCurRency,a.regUnit,
    registerCity,registerCounty,basicBank,basicBranchBank,
    basicAccountNo,basicAccountName,legalContact,legalContactPhone,
    legalContactAddress,legalWeb,legalZipCode,legalEmail,
    legalStatus
  </sql>
</mappper>

在另一个mapper.xml文件引用

<select id="getTenderAgentById" parameterType="String" resultType="Map">
    select <include refid="common.unitSql"/>, -- 就是这句话引用 ,refid为共有sql语句id
    b.auditOpinion,b.createUser,
    b.createTime,
    b.lastUpdateUser,
    b.lastUpdateTime,
    b.disabled,b.infoStatus
    from P_legalUnit a, P_tenderAgent b
    where b.userId=#{userId} AND a.userId = b.userId AND b.disabled='0'
</select>

==注:为何我的文件名要取为common.xml并且id也为common.unitSql呢?这是为了后期维护方便,如此,可以更容易找到该共有的sql在哪一个文件==

以上所述是小编给大家介绍的Mybatis中 SQL语句复用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# mybatis  # sql复用  # Mybatis控制台打印Sql语句的实现代码  # MyBatis 执行动态 SQL语句详解  # 详解Java的MyBatis框架中SQL语句映射部分的编写  # Oracle在Mybatis中SQL语句的配置方法  # Mybatis基于注解形式的sql语句生成实例代码  # mybatis教程之动态sql语句_动力节点Java学院整理  # 详解MyBatis直接执行SQL查询及数据批量插入  # mybatis执行批量更新batch update 的方法(oracle  # mysql两种)  # Mybatis 中的sql批量修改方法实现  # 如何批量测试Mybatis项目中的Sql是否正确详解  # 多个  # 这句话  # 我们可以  # 小编  # 复用  # 这是  # 在此  # 出现在  # 要在  # 只会  # 较好  # 给大家  # 很简单  # 也为  # 更容易  # 只提供  # 所述  # 该文件  # 给我留言  # 感谢大家 


相关文章: 大学网站设计制作软件有哪些,如何将网站制作成自己app?  深入理解Android中的xmlns:tools属性  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  如何用花生壳三步快速搭建专属网站?  如何做网站制作流程,*游戏网站怎么搭建?  建站主机与服务器功能差异如何区分?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  如何用5美元大硬盘VPS安全高效搭建个人网站?  建站之星好吗?新手能否轻松上手建站?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  制作门户网站的参考文献在哪,小说网站怎么建立?  网站制作免费,什么网站能看正片电影?  高防服务器:AI智能防御DDoS攻击与数据安全保障  建站三合一如何选?哪家性价比更高?  建站之星如何修改网站生成路径?  如何用低价快速搭建高质量网站?  建站之星客服服务时间及联系方式如何?  企业微网站怎么做,公司网站和公众号有什么区别?  ,石家庄四十八中学官网?  广州建站公司哪家好?十大优质服务商推荐  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  平台云上自主建站:模板化设计与智能工具打造高效网站  建站之星微信建站一键生成小程序+多端营销系统  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  内部网站制作流程,如何建立公司内部网站?  大同网页,大同瑞慈医院官网?  电商网站制作价格怎么算,网上拍卖流程以及规则?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  做企业网站制作流程,企业网站制作基本流程有哪些?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  小型网站制作HTML,*游戏网站怎么搭建?  如何快速搭建高效可靠的建站解决方案?  如何在Golang中指定模块版本_使用go.mod控制版本号  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  如何在云主机上快速搭建多站点网站?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  学校建站服务器如何选型才能满足性能需求?  建站10G流量真的够用吗?如何应对访问高峰?  营销式网站制作方案,销售哪个网站招聘效果最好?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  制作宣传网站的软件,小红书可以宣传网站吗?  如何通过IIS搭建网站并配置访问权限?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  建站上传速度慢?如何优化加速网站加载效率?  建站之星如何防范黑客攻击与数据泄露?  长沙做网站要多少钱,长沙国安网络怎么样? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。