mybatis的映射xml中動(dòng)態(tài)設(shè)置orderby方式
mybatis映射xml動(dòng)態(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);
第三個(gè)參數(shù)“sort”用于決定如何寫(xiě)這個(gè)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類(lèi)型,我發(fā)現(xiàn)寫(xiě)成以下形式會(huì)報(bào)錯(cuò):
<if test="sort == 'd'">
ORDER BY st.d_name ASC
</if>
<if test="sort == 'water'">
ORDER BY rd.water DESC
</if>
系統(tǒng)會(huì)將sort認(rèn)為是數(shù)值型,拋出異常說(shuō)無(wú)法識(shí)別的值。
mybatis動(dòng)態(tài)傳入order by參數(shù)的正確方式
正確方式:
ORDER BY #{shop_id} 換成 ORDER BY ${shop_id}
備注: #{shop_id}是過(guò)濾列值, ¥{shop_id}是過(guò)濾列名
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
sql于navicat中能運(yùn)行在mybatis中不能運(yùn)行的解決方案
這篇文章主要介紹了sql于navicat中能運(yùn)行在mybatis中不能運(yùn)行的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
java實(shí)現(xiàn)微信企業(yè)付款到個(gè)人
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)微信企業(yè)付款到個(gè)人功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
通過(guò)Docker啟動(dòng)Solace并在Spring?Boot通過(guò)JMS整合Solace的操作方法
本文將介紹如何在Spring中使用,雖然代碼使用的是Spring Boot,但并沒(méi)有使用相關(guān)starter,跟Spring的整合一樣,可通用,JMS是通過(guò)的消息處理框架,可以深入學(xué)習(xí)一下,不同的MQ在JMS的整合上都是類(lèi)似的,感興趣的朋友跟隨小編一起看看吧2023-01-01
Spring?Boot?使用?Hutool-jwt?實(shí)現(xiàn)?token?驗(yàn)證功能
JWT?就是一種網(wǎng)絡(luò)身份認(rèn)證和信息交換格式,這篇文章主要介紹了Spring Boot使用Hutool-jwt實(shí)現(xiàn)token驗(yàn)證,需要的朋友可以參考下2023-07-07
SpringBoot入門(mén)原理及優(yōu)勢(shì)分析
本篇文章主要來(lái)為大家介紹SpringBoot入門(mén)原理及優(yōu)勢(shì)分析,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-09-09
Java項(xiàng)目導(dǎo)出數(shù)據(jù)為 PDF 文件的操作代碼
一個(gè)小需求,需要將頁(yè)面上的數(shù)據(jù)導(dǎo)出為PDF,正常情況下這個(gè)需求需要讓前端來(lái)做,但是現(xiàn)在上面讓咱們后端來(lái)做,也沒(méi)問(wèn)題,這篇文章主要介紹了Java項(xiàng)目導(dǎo)出數(shù)據(jù)為 PDF 文件的操作代碼,需要的朋友可以參考下2022-12-12
IntelliJ IDEA 創(chuàng)建spring boot 的Hello World 項(xiàng)目(圖解)
這篇文章主要介紹了IntelliJ IDEA 創(chuàng)建spring boot 的Hello World 項(xiàng)目的步驟詳解,需要的朋友可以參考下2018-01-01

