mybatis入門 動態sql

2021-07-26 23:19:55 字數 1176 閱讀 9018

mybatis核心就是對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接、組裝。

現有需求如下:需要查詢使用者,輸入的是使用者類,如果使用者的性別類不為空,則將性別作為查詢條件之一,如果使用者的姓名不為空,則將使用者姓名作為查詢條件之一。如果使用者兩個屬性都為空,則查詢所有使用者。

將上邊實現的動態sql判斷**塊抽取出來,組成乙個sql片段。其它的statement中就可以引用sql片段。方便程式設計師進行開發。

定義乙個sql片段

引用乙個sql片段

在我們的sql語句中,有時候會出現這種情況:

select * from user where id=1 or id=10 or id=16

select * from user where id in(1,10,16)

我們要用foreach來解決這個問題,**如下:

1

<

sql

id="query_user_where"

>

2<

if test

="usercustom!=null"

>

3<

if test

="ids!=null"

>411

14<

foreach

collection

="ids"

item

="user_id"

open

="and ("

close

=")"

separator

="or"

>

1516

id=#

17foreach

>

1819

2024

25if

>

26if

>

27sql

>

view code

Mybatis入門三 動態sql

mybatyis強大的功能之一就是可以方便的使用動態sql,以前使用jdbc來運算元據庫的時候,能感受到那種在根據不同條件進行拼接sql語句帶來的不方便。在mybatis中利用關係標籤就能很方便的解決這一問題。標籤 if choose where set trim foreach 實體類用員工 em...

mybatis 動態sql詳解

內容 轉到原網頁insert into t blog title,content,owner values select from t blog where id update t blog set title content owner where id select from t blog se...

MyBatis動態sql查詢

什麼是動態sql mybatis核心 對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接 組裝。需求public class userpo if test userpo.id null and id if if where select id findusercount parame...