聊聊mybatis sql的括號問題
mybatis sql的括號問題
因為一段sql 要關(guān)聯(lián) A,B,C三個表,查三個表里的數(shù)據(jù)
一開始寫的是
select * from a,b,c ? ??
結(jié)果出來很多重復(fù)數(shù)據(jù)
而三個表是用id關(guān)聯(lián)的
所以改成
select * from a ?where id in (select id from a,b,c 關(guān)聯(lián)條件)
然后在mybatis里在寫級聯(lián)查詢
把B,C表里的數(shù)據(jù)以數(shù)組的形式查出來
ok了 避免了數(shù)據(jù)重復(fù)一大堆
但是人說,級聯(lián)查詢,缺點: 查詢速度慢
如果用exists 查的比較快
mybatis多層括號(超過三層)解析不了
加<![CDATA[ ]]>即可,要么用存視圖,應(yīng)用在局部也可
<select id="selectfirm" resultType="com.esteel.web.entity.CusFirmBean" parameterType="com.esteel.web.beanvo.CusFirmBeanVo">
<![CDATA[?
select a.*,a.customer_name as customerName from tb_cus_firm a where a.market_key = ? #{marketKey} order by customer_key
]]>
</select><select id="getEmailCount" parameterType="map" resultMap="account1Map">
?SELECT * FROM TB_CUS_USER WHERE 1=1
? <if test="EMAIL!=null and EMAIL!=''">
? and EMAIL=#{EMAIL}?
? </if>
? <if test="CUS_TRADE_KIND!=null and CUS_TRADE_KIND!=''">
? and CUS_TRADE_KIND =#{CUS_TRADE_KIND}
? </if>
? <if test="CUS_USER_KEY!=null and CUS_USER_KEY!=''">
? ?and cus_user_key <![CDATA[<>]]> #{CUS_USER_KEY}
? </if>?
</select>以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解析Mybatis Porxy動態(tài)代理和sql解析替換問題
這篇文章主要介紹了Mybatis Porxy動態(tài)代理和sql解析替換,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04
Java鏈表(Linked List)基本原理與實現(xiàn)方法入門示例
這篇文章主要介紹了Java鏈表(Linked List)基本原理與實現(xiàn)方法,結(jié)合實例形式分析了Java鏈表(Linked List)的功能、原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-03-03
SpringBoot如何導(dǎo)出Jar包并測試(使用IDEA)
這篇文章主要介紹了SpringBoot如何導(dǎo)出Jar包并測試(使用IDEA),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
深入理解Java8新特性之Stream API的創(chuàng)建方式和中間操作步驟
Stream是Java8的一大亮點,是對容器對象功能的增強,它專注于對容器對象進行各種非常便利、高效的 聚合操作(aggregate operation)或者大批量數(shù)據(jù)操作。Stream API借助于同樣新出現(xiàn)的Lambda表達式,極大的提高編程效率和程序可讀性,感興趣的朋友快來看看吧2021-11-11
SpringBoot如何在運行時動態(tài)添加數(shù)據(jù)源
這篇文章主要介紹了SpringBoot如何在運行時動態(tài)添加數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10
Java?Stream流中的filter()使用方法舉例詳解
filter()是Java?Stream?API中的中間操作,用于根據(jù)給定的Predicate條件篩選流中的元素,它通過接收一個返回boolean值的函數(shù)(斷言)作為參數(shù),篩選出滿足條件的元素并收集到新的流中,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-11-11

