Mybatis中SQL语句复用

  

映射器。xml中共用

  

映射器。xml间共用

  

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

  

这里只提供简单的示范:

  

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

        & lt;映射器命名空间=癤XXXX”祝辞& lt;/mapper>      

中写下面的业务代码

        & lt; sql id=皍nitSql”比;   a.userId、a.legalCode legalName,   bidderCodeType legalRole,   licenseNo DATE_FORMAT (licenseEndDate,“Y % - % - % d”)作为licenseEndDate,   taxCertNo DATE_FORMAT (taxCertEndDate,“Y % - % - % d”)作为taxCertEndDate,   localTaxCertNo DATE_FORMAT (localTaxCertEndDate,“Y % - % - % d”)作为localTaxCertEndDate,   organNo DATE_FORMAT (organCertEndDate,“Y % - % - % d”)作为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,   法律地位    & lt;/完成;      

然后引用

        & lt;选择id=" getTenderAgentById " parameterType=白址眗esultType=暗赝肌北?   选择& lt;包括refid=皍nitSql”/祝辞,——就是这句话引用,refid为共有sql语句id   b.auditOpinion b.createUser,   b.createTime,   b.lastUpdateUser,   b.lastUpdateTime,   b.disabled, b.infoStatus   从P_legalUnit, P_tenderAgent b   在b。用户id=# {userId}和。用户id=b。userId和b.disabled=' 0 '   & lt;/select>      

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

  

该文件内容为

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; !DOCTYPE mapper公共”——//mybatis.org//DTD mapper 3.0//EN”“http://mybatis.org/dtd/mybatis-3-mapper.dtd”的在   & lt;映射器命名空间=肮餐北?   & lt; sql id=癱ommon.unitSql”比;   a.userId、a.legalCode legalName,   bidderCodeType legalRole,   licenseNo DATE_FORMAT (licenseEndDate,“Y % - % - % d”)作为licenseEndDate,   taxCertNo DATE_FORMAT (taxCertEndDate,“Y % - % - % d”)作为taxCertEndDate,   localTaxCertNo DATE_FORMAT (localTaxCertEndDate,“Y % - % - % d”)作为localTaxCertEndDate,   organNo DATE_FORMAT (organCertEndDate,“Y % - % - % d”)作为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,   法律地位   & lt;/完成;   & lt;/mappper>      

在另一个mapper.xml文件引用

        & lt;选择id=" getTenderAgentById " parameterType=白址眗esultType=暗赝肌北?   选择& lt;包括refid=癱ommon.unitSql”/祝辞,——就是这句话引用,refid为共有sql语句id   b.auditOpinion b.createUser,   b.createTime,   b.lastUpdateUser,   b.lastUpdateTime,   b.disabled, b.infoStatus   从P_legalUnit, P_tenderAgent b   在b。用户id=# {userId}和。用户id=b。userId和b.disabled=' 0 '   & lt;/select>      

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

  

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

Mybatis中SQL语句复用