一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Mybatis中 SQL語句復用

Mybatis中 SQL語句復用

2020-08-28 10:02iiuk3 Java教程

這篇文章主要介紹了Mybatis中 SQL語句復用,需要的朋友可以參考下

mapper.xml 中共用

mapper.xml 間共用

項目中也許我們會遇到一段sql語句被多個查詢、增加等語句用到的情況,如何去偷懶呢,復用sql無疑是較好的選擇

這里只提供簡單的示范:

如果只是單表查詢,并且希望共用的sql只會出現在同一個mapper.xml文件中,那么我們可以直接在

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

中寫下面的業務代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<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>

然后引用

?
1
2
3
4
5
6
7
8
9
10
<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

該文件內容為

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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文件引用

?
1
2
3
4
5
6
7
8
9
10
<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在哪一個文件==

以上所述是小編給大家介紹的MybatisSQL語句復用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/sinat_33155679/article/details/61914139

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女脱了内裤打开腿让男人图片 | 亚洲第成色999久久网站 | 欧美另类videos另类粗暴 | 国产在线视频在线观看 | 日本不卡高清免费v日本 | 亚洲香蕉视频 | 韩国悲惨事件30无删减在线 | 侮辱丰满美丽的人妻 | 色综合久久天天综合观看 | 精品视频 九九九 | 久久99精品国产免费观看 | 99在线观看视频 | 欧洲肥女大肥臀 | 91天堂素人 | caoporn超碰| 国产欧美精品一区二区三区四区 | 亚洲AV久久无码精品九号软件 | 欧美国产日本精品一区二区三区 | 亚洲AV福利天堂一区二区三 | 免费网站看v片在线香蕉 | 精品性影院一区二区三区内射 | 久久免费看少妇高潮A片JA | 亚洲成人伦理 | 久久成人免费大片 | 欧美精品一二三区 | 我与肥熟老妇的性事 | 亚洲高清免费在线观看 | 青青国产在线观看 | 国产一区二区三区在线 | 国产在线欧美精品 | 欧美国产日本高清不卡 | 亚洲成年男人的天堂网 | 午夜一区二区免费视频 | 关晓彤被草 | 关晓彤被草 | 国产精品久久久久久岛国 | 精品国产欧美一区二区五十路 | 欧美成人三级伦在线观看 | 国产亚洲精品第一综合linode | 国产精品不卡 | 拍拍叫痛的无挡视频免费 |