mybatis中標籤在Mysql中的使用

2021-08-08 20:21:10 字數 2126 閱讀 6109

mybatis中標籤在

mysql

中的使用

foreach屬性

屬性描述

item

迴圈體中的具體物件。支援屬性的點路徑訪問,如item.age,item.info.details。

具體說明:在list和陣列中是其中的物件,在map中是value。

該引數為必選。

collection

要做foreach的物件,作為入參時,list>物件預設用list代替作為鍵,陣列物件有array代替作為鍵,map物件用map代替作為鍵。

當然在作為入參時可以使用@param("keyname")來設定鍵,設定keyname後,list,array,map將會失效。 除了入參這種情況外,還有一種作為引數物件的某個欄位的時候。舉個例子:

如果user有屬性list ids。入參是user物件,那麼這個collection = "ids"

如果user有屬性ids ids;其中ids是個物件,ids有個屬性list id;入參是user物件,那麼collection = "ids.id"

上面只是舉例,具體collection等於什麼,就看你想對那個元素做迴圈。

該引數為必選。

separator

元素之間的分隔符,例如在in()的時候,separator=","會自動在元素中間用「,「隔開,避免手動輸入逗號導致sql錯誤,如in(1,2,)這樣。該引數可選。

open

foreach**的開始符號,一般是(和close=")"合用。常用在in(),values()時。該引數可選。

close

foreach**的關閉符號,一般是)和open="("合用。常用在in(),values()時。該引數可選。

index

在list和陣列中,index是元素的序號,在map中,index是元素的key,該引數可選。

1.select count(*) from users id in (x1,x2,x3,...)

select count(*) from users    

id in

#

2.迴圈插入表資料,用到dual偽表給資料做掩護。

insert into deliver (col1,col2,col3,col4,...) select col1,col2,col3,col4... from dual union all select col11,col22,col33,col44,... from dual。(欄位col1,col2,col3,col4,...)新增

或者insert into deliver select col1,col2,col3,col4,... from dual union all select col11,col22,col33,col44,... from dual。(全部字段新增)

insert into deliver  

( )

select

#,

# from dual

3.迴圈插入map值  insert into users(key,values) values(key1,values1),(key2,values3),(key3,values4)

insert into string_string (key, value) values    

open="" separator="," close="">(#, #)

4.select count(*) from key_cols where col_a = ? and col_b = ?

(一定要注意到$和#的區別,$的引數直接輸出,#的引數會被替換為?,然後傳入引數值,加上' '後執行。可以防止sql注入)

select count(*) from key_cols where    

open="" separator="and" close="">$ = #

5.select * from t_news n where n.tags like ? or n.tags like ? 

n.tags like '%'||#||'%'

mybatis中標籤的作用

mybatis中sql標籤定義sql片段,include標籤引用,可以復用sql片段 sql標籤中id屬性對應include標籤中的refid屬性。通過include標籤將sql片段和原sql片段進行拼接成乙個完整的sql語句進行執行。res type id,res type sql select ...

mybatis中標籤的作用

mybatis中sql標籤定義sql片段,include標籤引用,可以復用sql片段 sql標籤中id屬性對應include標籤中的refid屬性。通過include標籤將sql片段和原sql片段進行拼接成乙個完整的sql語句進行執行。res type id,res type sql select ...

mybatis批量操作中標籤的使用

mybatis使用,在進行批量操作時可以通過標籤,對傳入的集合引數進行遍歷。一 foreach標籤使用 1.批量更新 dao層設定傳入引數,與遍歷的引數名保持一致 integer batchupdate param stulist liststulist stulist item stu separ...