Mybatis中 SQL語句復(fù)用
mapper.xml 中共用
mapper.xml 間共用
項(xiàng)目中也許我們會(huì)遇到一段sql語句被多個(gè)查詢、增加等語句用到的情況,如何去偷懶呢,復(fù)用sql無疑是較好的選擇
這里只提供簡(jiǎn)單的示范:
如果只是單表查詢,并且希望共用的sql只會(huì)出現(xiàn)在同一個(gè)mapper.xml文件中,那么我們可以直接在
<mapper namespace="XXXXX"></mapper>
中寫下面的業(yè)務(wù)代碼
<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>
如果是連表查詢,那么我們極有可能會(huì)希望有一個(gè)sql語句被多個(gè)mapper.xml引用的的方法,很簡(jiǎn)單。
我們可以新建一個(gè)mapper.xml文件(當(dāng)然,這個(gè)mapper.xml要在你的掃描路徑下,本文不贅述)。取名為common.xml
該文件內(nèi)容為
<?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>
在另一個(gè)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呢?這是為了后期維護(hù)方便,如此,可以更容易找到該共有的sql在哪一個(gè)文件==
以上所述是小編給大家介紹的Mybatis中 SQL語句復(fù)用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Mybatis控制臺(tái)打印Sql語句的實(shí)現(xiàn)代碼
- MyBatis 執(zhí)行動(dòng)態(tài) SQL語句詳解
- 詳解Java的MyBatis框架中SQL語句映射部分的編寫
- Oracle在Mybatis中SQL語句的配置方法
- Mybatis基于注解形式的sql語句生成實(shí)例代碼
- mybatis教程之動(dòng)態(tài)sql語句_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 詳解MyBatis直接執(zhí)行SQL查詢及數(shù)據(jù)批量插入
- mybatis執(zhí)行批量更新batch update 的方法(oracle,mysql兩種)
- Mybatis 中的sql批量修改方法實(shí)現(xiàn)
- 如何批量測(cè)試Mybatis項(xiàng)目中的Sql是否正確詳解
相關(guān)文章
史上最簡(jiǎn)單的MyBatis動(dòng)態(tài)SQL入門示例代碼
動(dòng)態(tài)sql,可以根據(jù)用戶對(duì)字段選擇和輸入,動(dòng)態(tài)生成一條sql執(zhí)行。接下來通過本文給大家分享MyBatis動(dòng)態(tài)SQL入門示例代碼,一起看看吧2017-03-03SpringBoot時(shí)間格式化的方法小結(jié)
SpringBoot中的時(shí)間格式化通常指的是將Java中的日期時(shí)間類型轉(zhuǎn)換為指定格式的字符串,或者將字符串類型的時(shí)間解析為Java中的日期時(shí)間類型,本文小編將給大家詳細(xì)總結(jié)了SpringBoot時(shí)間格式化的方法,剛興趣的小伙伴跟著小編一起來看看吧2023-10-10SpringBoot配置線程池的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot配置線程池的實(shí)現(xiàn)示例,主要包括在Spring Boot中創(chuàng)建和配置線程池,包括設(shè)置線程池的大小、隊(duì)列容量、線程名稱等參數(shù),感興趣的可以了解一下2023-09-09PowerJob的AliOssService工作流程源碼解讀
這篇文章主要介紹了PowerJob的AliOssServiceg工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01java實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼圖片
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)隨機(jī)生成驗(yàn)證碼圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12