Mybatis中 SQL語(yǔ)句復(fù)用
mapper.xml 中共用
mapper.xml 間共用
項(xiàng)目中也許我們會(huì)遇到一段sql語(yǔ)句被多個(gè)查詢、增加等語(yǔ)句用到的情況,如何去偷懶呢,復(fù)用sql無(wú)疑是較好的選擇
這里只提供簡(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語(yǔ)句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語(yǔ)句被多個(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語(yǔ)句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語(yǔ)句復(fù)用,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Mybatis控制臺(tái)打印Sql語(yǔ)句的實(shí)現(xiàn)代碼
- MyBatis 執(zhí)行動(dòng)態(tài) SQL語(yǔ)句詳解
- 詳解Java的MyBatis框架中SQL語(yǔ)句映射部分的編寫
- Oracle在Mybatis中SQL語(yǔ)句的配置方法
- Mybatis基于注解形式的sql語(yǔ)句生成實(shí)例代碼
- mybatis教程之動(dòng)態(tài)sql語(yǔ)句_動(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)文章
Java 反射獲取類詳細(xì)信息的常用方法總結(jié)
Java 反射獲取類詳細(xì)信息的常用方法總結(jié),需要的朋友可以參考一下2013-03-03
在IntelliJ IDEA中創(chuàng)建和運(yùn)行java/scala/spark程序的方法
這篇文章主要介紹了在IntelliJ IDEA中創(chuàng)建和運(yùn)行java/scala/spark程序的教程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
mybatis-plus?分頁(yè)類型轉(zhuǎn)換工具類
用mybatis-plus?的分頁(yè)對(duì)象的時(shí)候,因?yàn)橛胢ybatis-puls?查詢出來的分頁(yè)對(duì)象的records里的泛型是實(shí)體,有時(shí)候需要將實(shí)體轉(zhuǎn)換為前端展示的對(duì)象,所有寫了一個(gè)分頁(yè)數(shù)據(jù)的類型轉(zhuǎn)換工具,解決這個(gè)問題,對(duì)mybatis-plus?分頁(yè)工具類相關(guān)知識(shí)感興趣的朋友一起看看吧2022-03-03
SpringData整合ElasticSearch實(shí)現(xiàn)CRUD的示例代碼(超詳細(xì))
本文主要介紹了SpringData整合ElasticSearch實(shí)現(xiàn)CRUD的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
BeanPostProcessor在顯示調(diào)用初始化方法前修改bean詳解
這篇文章主要介紹了BeanPostProcessor在顯示調(diào)用初始化方法前修改bean詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn)
本文主要介紹了SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn),,通過打印SQL語(yǔ)句可以幫助開發(fā)人員快速了解數(shù)據(jù)庫(kù)的操作情況,進(jìn)而進(jìn)行性能分析和調(diào)試,感興趣的可以了解一下2023-11-11
學(xué)習(xí)SpringMVC——國(guó)際化+上傳+下載詳解
本篇文章主要介紹了學(xué)習(xí)SpringMVC——國(guó)際化+上傳+下載,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。2016-12-12

