Mybatis Plus 實現查詢條件為空時不生效

2021-10-09 06:38:31 字數 2616 閱讀 2177

當我們查詢條件中的值不確定是否有空值時,我們期待查詢時,mybatis+能自動幫我們判空。

比如這樣:

this

.page

(new

query

().getpage

(queryfields)

,new

().eq

("province_id"

,queryfields.

getprovinceid()

).eq(

"city_id"

,queryfields.

getcityid()

).eq(

"area_id"

,queryfields.

getareaid()

).like

("name"

,queryfields.

getnamelike()

));

我們期待的結果是:「province_id」、「city_id」、「area_id」、"name"等幾個欄位中,如果有空的(比如查詢表單中沒有填這個查詢條件),就不查詢。

然而事實上,如果這樣去寫,結果會是:mybatis+把所有條件都構造出來,為空的就按null查詢,like則是查詢: %null%

解決方案:

this

.page

(new

query

().getpage

(queryfields)

,new

().eq

("province_id"

,queryfields.

getprovinceid()

).eq(

"city_id"

,queryfields.

getcityid()

).eq(

"area_id"

,queryfields.

getareaid()

).like

("name"

,queryfields.

getnamelike()

));

/**

* @since mybatis+ version: 3.x.x

* @author firewolf

*/public

class

extends

@override

ne(boolean condition, string column, object val)

@override

gt(boolean condition, string column, object val)

@override

ge(boolean condition, string column, object val)

@override

lt(boolean condition, string column, object val)

@override

le(boolean condition, string column, object val)

@override

like

(boolean condition, string column, object val)

@override

notlike

(boolean condition, string column, object val)

@override

likeleft

(boolean condition, string column, object val)

@override

likeright

(boolean condition, string column, object val)

@override

between

(boolean condition, string column, object val1, object val2)

else

if(objects.

isnull

(val1)

)else

if(objects.

isnull

(val2)

)return

super

.between

(condition, column, val1, val2);}

@override

notbetween

(boolean condition, string column, object val1, object val2)

else

if(objects.

isnull

(val1)

)else

if(objects.

isnull

(val2)

)return

super

.notbetween

(condition, column, val1, val2);}

}

mapx實現查詢

1 屬性查詢。find search方法 注意的是find方法只支援tab表檔案,不支援空間資料 表。find 與foxpro中locate定位命令想類似。search 支援sql語句。寫法 僅指sql語句的where 部分,且from語句中只能有乙個表 僅對單錶進行操作 select from l...

Mybatis plus實現條件查詢

教程目錄 教程一 mybatis plus使用教程 教程二 mybatis plus的字段自動填充 教程三 mybatis實現物理刪除和邏輯刪除 教程四 mybatis plus實現樂觀鎖 教程五 mybatis plus實現條件查詢 條件查詢 複雜查詢 test public void tests...

php 實現查詢快取

適合讀者 本教程適合於那些對快取sql查詢以減少資料庫連線與執行的負載 提高指令碼效能感興趣的php程式設計師。概述 這樣乙個系統通過把sql查詢的結果快取到系統的乙個檔案中儲存,從而阻止連線資料庫,構造查詢與取得返回結果而提高了響應時間。有些系統資料庫並不是放在web伺服器上的,這樣需要乙個遠端連...