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來解決這個問題,**如下:
1view code<
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
>
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...