mybatis的映射xml中動態(tài)設(shè)置orderby方式
mybatis映射xml動態(tài)設(shè)置orderby
mybatis的dao xml中,根據(jù)參數(shù)值設(shè)置不同的order by字段。
dao java
List<DzRainDetail> queryDetail(@Param("masterId") int masterId,
@Param("country") String country,
@Param("sort") String sort);
第三個參數(shù)“sort”用于決定如何寫這個order by。
dao XML
<select id="queryDetail" resultMap="DetailResultMap">
SELECT rd.id, st.address, rd.water, st.d_name
FROM dzzhyj.dz_rain_detail rd
INNER JOIN dzzhyj.DZ_RAIN_STATION st ON rd.station_code = st.code
WHERE rd.master_id = #{masterId}
AND st.country = #{country}
<if test="sort.compareTo('d') == 0">
ORDER BY st.d_name ASC
</if>
<if test="sort.compareTo('water') == 0">
ORDER BY rd.water DESC
</if>
</select>
由于sort是字符串,String類型,我發(fā)現(xiàn)寫成以下形式會報錯:
<if test="sort == 'd'">
ORDER BY st.d_name ASC
</if>
<if test="sort == 'water'">
ORDER BY rd.water DESC
</if>
系統(tǒng)會將sort認(rèn)為是數(shù)值型,拋出異常說無法識別的值。
mybatis動態(tài)傳入order by參數(shù)的正確方式
正確方式:
ORDER BY #{shop_id} 換成 ORDER BY ${shop_id}
備注: #{shop_id}是過濾列值, ¥{shop_id}是過濾列名
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot整合logback一個簡單的日志集成架構(gòu)
今天小編就為大家分享一篇關(guān)于Spring Boot整合logback一個簡單的日志集成架構(gòu),小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
Java在PowerPoint幻燈片中創(chuàng)建散點圖的方法
散點圖是通過兩組數(shù)據(jù)構(gòu)成多個坐標(biāo)點,考察坐標(biāo)點的分布,判斷兩變量之間是否存在某種關(guān)聯(lián)或總結(jié)坐標(biāo)點的分布模式,這篇文章主要介紹了Java如何在PowerPoint幻燈片中創(chuàng)建散點圖,需要的朋友可以參考下2023-04-04
利用IDEA工具修改Maven多模塊項目標(biāo)識包名全過程記錄
當(dāng)我們?yōu)榧追椒?wù)提供軟件開發(fā)服務(wù)時,需要按照甲方的要求去修改軟件的標(biāo)識,對于Maven項目來說就對應(yīng)著groupId,一般地寫對方公司的域名,如com.example,接下來通過本文給大家分享IDEA修改Maven多模塊項目標(biāo)識包名,感興趣的朋友一起看看吧2022-09-09
mybatis sum(參數(shù)) 列名作為參數(shù)的問題
這篇文章主要介紹了mybatis sum(參數(shù)) 列名作為參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Java代理模式與動態(tài)代理之間的關(guān)系以及概念
代理模式是開發(fā)中常見的一種設(shè)計模式,使用代理模式可以很好的對程序進行橫向擴展。動態(tài)代理:代理類在程序運行時被創(chuàng)建的代理方式。關(guān)鍵在于動態(tài),程序具有了動態(tài)特性,可以在運行期間根據(jù)不同的目標(biāo)對象生成動態(tài)代理對象2023-02-02
SpringBoot工程中Spring Security應(yīng)用實踐記錄流程分析
Spring Security是一個能夠為基于Spring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。這篇文章主要介紹了SpringBoot工程中Spring Security應(yīng)用實踐,需要的朋友可以參考下2021-09-09

