解決mybatis中order by排序無(wú)效問(wèn)題
1、#將傳入的數(shù)據(jù)都當(dāng)成一個(gè)字符串,會(huì)對(duì)自動(dòng)傳入的數(shù)據(jù)加一個(gè)雙引號(hào)。如:order by #{user_id},如果傳入的值是111,那么解析成sql時(shí)的值為order by "111", 如果傳入的值是id,則解析成的sql為order by "id"。
2、$將傳入的數(shù)據(jù)直接顯示生成在sql中。如:order by ${user_id},如果傳入的值是111,那么解析成sql時(shí)的值為order by 111, 如果傳入的值是id,則解析成的sql為order by id。
3、#方式能夠很大程度防止sql注入。
4、$方式無(wú)法防止Sql注入。
5、$方式一般用于傳入數(shù)據(jù)庫(kù)對(duì)象,例如傳入表名。
6、一般能用#的就別用$。
ps: 在使用mybatis中還遇到<![CDATA[]]>的用法,在該符號(hào)內(nèi)的語(yǔ)句,將不會(huì)被當(dāng)成字符串來(lái)處理,而是直接當(dāng)成sql語(yǔ)句,比如要執(zhí)行一個(gè)存儲(chǔ)過(guò)程。
所以order by 之后要使用$而非#。
補(bǔ)充知識(shí):MyBatis-plus數(shù)據(jù)庫(kù)字段排序不準(zhǔn)確
目錄標(biāo)題
1:今天用mybatis-plus進(jìn)行開(kāi)發(fā)的時(shí)候遇到一個(gè)問(wèn)題,就是用mysql自帶的排序進(jìn)行數(shù)據(jù)排序的時(shí)候,發(fā)現(xiàn)排序的數(shù)據(jù)不準(zhǔn)確。
1:今天用mybatis-plus進(jìn)行開(kāi)發(fā)的時(shí)候遇到一個(gè)問(wèn)題,就是用mysql自帶的排序進(jìn)行數(shù)據(jù)排序的時(shí)候,發(fā)現(xiàn)排序的數(shù)據(jù)不準(zhǔn)確。
例如:12還沒(méi)有8,4,2大,這就很郁悶了。
后來(lái)在網(wǎng)上查了一下,原來(lái)是自己給自己挖的坑,數(shù)據(jù)庫(kù)排序字段用的是varcher類型,而排序函數(shù)針對(duì)的是number類型。
解決方案:
對(duì)于mysql和oracle都實(shí)用
order by 字段+0
order by 字段*1
因?yàn)橛玫氖莔ybatis-plus,不想寫sql怎么辦呢?那就用自帶的排序函數(shù)嘍。排序字段直接"+1"就Ok了
//倒敘
queryWrapper.orderByDesc("visit_num+1");
以上這篇解決mybatis中order by排序無(wú)效問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis-flex整合達(dá)夢(mèng)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例
本文討論了國(guó)產(chǎn)達(dá)夢(mèng)數(shù)據(jù)庫(kù)與Mybatis-flex框架的整合過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10Java中Spock框架Mock對(duì)象的方法經(jīng)驗(yàn)總結(jié)
這篇文章主要分享了Spock框架Mock對(duì)象的方法經(jīng)驗(yàn)總結(jié),下文分享一些常用項(xiàng)目實(shí)戰(zhàn)說(shuō)明以及代碼,供大家項(xiàng)目中參考,也具有一的的參考價(jià)值,需要的小伙伴可以參考一下2022-02-02java計(jì)算工作時(shí)間除去節(jié)假日以及雙休日
這篇文章主要為大家詳細(xì)介紹了java計(jì)算工作時(shí)間除去節(jié)假日以及雙休日的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06java模擬http請(qǐng)求的錯(cuò)誤問(wèn)題整理
本文是小編給大家整理的在用java模擬http請(qǐng)求的時(shí)候遇到的錯(cuò)誤問(wèn)題整理,以及相關(guān)分析,有興趣的朋友參考下。2018-05-05利用Java寫一個(gè)學(xué)生管理系統(tǒng)
今天這篇文章就給給大家分享利用Java寫一個(gè)學(xué)生管理系統(tǒng)吧,先寫一個(gè)簡(jiǎn)單的用List來(lái)實(shí)現(xiàn)學(xué)生管理系統(tǒng):2021-09-09詳解Kotlin 高階函數(shù) 與 Lambda 表達(dá)式
這篇文章主要介紹了詳解Kotlin 高階函數(shù) 與 Lambda 表達(dá)式的相關(guān)資料,需要的朋友可以參考下2017-06-06Springboot定時(shí)任務(wù)Scheduled重復(fù)執(zhí)行操作
這篇文章主要介紹了Springboot定時(shí)任務(wù)Scheduled重復(fù)執(zhí)行操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09