MyBatis動態排序問題

2021-07-29 20:30:24 字數 469 閱讀 5472

在使用mybatis時加入來按指定字段進行排序

order by##

id asc , create_time asc

執行後,加入的排序無效

原因是:#, mybatis會建立預編譯的語句,然後為它設定相應的值.mybatis會自動將排序字段當成乙個字串,等同於order by 'create_time' 'desc',可以通過執行,但無效,與order by create_time desc結果不同

解決方法:使用$,mybatis會將其視作直接變數,變數替換成功後,不會再加上引號成為字串,同樣排序順序也一樣$,因此修改如下

order by$$

id asc , create_time asc

mybatis 動態排序

mybatis動態排序目前知道的方式有兩種 1.通過pagehelper com.github.pagehelper pagehelper 版本5.1.4 stringbuffer orderby new stringbuffer 欄位名稱 排序方式 pagehelper.startpage vo....

mybatis動態sql排序無效問題

在使用mybatis解析xml進行排序的時候,遇見排序無效的問題!將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是id,則解析成的sql為order by id 將傳入的資料直接顯...

Mybatis實現 動態排序

比如,現在我要查詢使用者資訊 user 表。可以在查詢時,介面中,多新增兩個字段。orderfield 排序列 ordertype 排序規則,公升降序 select name age user grade as usergrade from user if test orderfield null ...