Mybatis實現 動態排序

2021-08-31 01:23:12 字數 1510 閱讀 4942

比如,現在我要查詢使用者資訊(user)表。

可以在查詢時,介面中,多新增兩個字段。

orderfield(排序列)

ordertype(排序規則,公升降序)

select 

name , *** , age , user_grade as usergrade

from

user

<

if test=

"orderfield !=null and orderfield != '' "

>

order

by $ $

>

這時,在我們查詢時,可以在傳入引數
user user =

newuser()

;//以user_grade欄位排序

user.

setorderfield

("user_grade");

//降序

user.

setordertype

("desc");

//可在user類中新增

//在未傳入時,使用set注入,設定預設值

public string getorderfield()

return orderfield;

}public string getordertype()

return ordertype;

}

select 

name , *** , age , user_grade as usergrade

from

user

<

if test=

"orderfield != null"

>

order

by<

when test=

"orderfield == 'name'"

>

name $

<

/when

>

<

when test=

"orderfield == 'age'"

>

age $

<

/when

>

<

when test=

"orderfield == 'usergrade'"

>

user_grade $

<

/when

>

create_time $

<

/otherwise>

<

/choose>

>

user.setorderfield("usergrade");小小的贊助,謝謝!

mybatis 動態排序

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

MyBatis動態排序問題

在使用mybatis時加入來按指定字段進行排序 order by id asc create time asc 執行後,加入的排序無效 原因是 mybatis會建立預編譯的語句,然後為它設定相應的值 mybatis會自動將排序字段當成乙個字串,等同於order by create time desc...

mybatis中動態排序失效

mybatis中動態排序失效 應用場景 在應用程式中需要根據表頭設定資料的排序欄位與規則。問題 將排序欄位與排序規則以引數的形式動態傳入了mybatis的xml中,然而實際執行結果仍然是預設字段公升序的查詢結果。原因 為了預防sql注入問題,在xml檔案中接收動態引數採用的是 的方式,基於mybat...