映射器。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语句复用,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!