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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 182免费在线观看 | 日韩欧美成末人一区二区三区 | 秋霞黄色片| 国产美女亚洲精品久久久综合91 | 国产大片51精品免费观看 | 肉色欧美久久久久久久蜜桃 | 亚洲国产福利精品一区二区 | 好性20岁 | 国产精品思瑞在线观看 | 美女国内精品自产拍在线播放 | 国色天香论坛社区在线视频 | 手机在线观看网站免费视频 | 亚洲免费在线视频 | 亚洲天堂在线视频观看 | 亲爱的客栈第二季免费观看完整版 | 国产在线精品香蕉综合网一区 | 2019国内精品久久久久久 | 国产精品一二区 | 国产最新精品视频 | 精品免费久久久久久成人影院 | 精品一区二区三区在线视频观看 | 欧美一级二级片 | 国产成人一区二区三区小说 | 四虎影视免费 | 9热在线精品视频观看 | 色姑娘久 | 激情综合站 | 免费观看视频在线播放 | 情趣内衣情趣玩具play | 欧美黑大吊 | 国产欧美久久久精品影院 | 久久久免费观看 | 喷潮女王cytherea全部视频 | 国产一页| 久久理论片迅播影院一级 | 精品亚洲一区二区三区在线播放 | 动漫美女胸被狂揉扒开吃奶动态图 | 精品欧美一区二区三区四区 | 亚洲国产精品线在线观看 | 草草影院免费 | 精品欧美一区二区三区久久久 |