關於mybatis批量更新和新增,參考我的如下文章即可:
mybatis的批量更新例項
mybatis的批量新增例項
另外不管是批量的新增、刪除、修改、查詢也好,還是單個新增、刪除、修改查詢也罷。都會用到動態sql。
關於mybatis的動態sql可以參考我的這篇文章,如下:
mybatis實戰之動態sql
但是因為最近的乙個需求不得不自己手寫批量查詢例子(主要涉及聯表之類的操作)。
關鍵xml:
getstudentsubmithomeworklistinfos" resultmap="
baseresultmap
">select s.`solution_id`,s.`problem_id`,s.`user_id`,s.`nick`,s.`result`,p.title
from solution as s left join problem
as p on(s.problem_id =p.problem_id) where
s.`user_id`
inlist
" item="
userid
" open="
(" close="
)" separator="
,">#
foreach>
select>
foreach相關引數解釋:
collection配置的users是傳遞進來的引數名稱,它可以是乙個陣列或者list、set等集合;
item配置的是迴圈中當前的元素;
index配置的是當前元素在集合的位置下標;
separator是各個元素的間隔符;
open和colose代表的是以什麼符號將元素包裹起來;
關鍵dao:
public listgetstudentsubmithomeworklistinfos(listuserid);
單元測試:
@testpublic
void
testcollectionrun()
}
順便說說批量查詢的應用場景:
(1)特定的場景獲取使用者訂單列表數;
(2)獲取某乙個題目許學生提交的結果(以使用者id作為查詢引數,該使用者id非主鍵);
mybatis批量查詢
今天在用mybatis寫乙個查詢操作,需求是根據userid去查表查出其使用者名稱username,返回使用者名稱username與userid即可。由於可能包含多個userid,因此把userid的值封裝到map中,再把map新增的list裡。public list findusername st...
mybatis批量查詢,批量新增,批量更新
一 多條件批量查詢 先上 再講解 select from ifs company where id and code id標籤不用多說,和dao方法一一對應。parametertype標籤寫list就可以,如果是其他型別對應寫就可以。resultmap,自己定義的字段實體類對應。二 批量新增 先上 ...
mybatis之批量處理
批量處理即對多條資料進行sql操作,如批量更新,插入,新增。之前採取過很low的方式,就是在dao層進行迴圈,對每條資料進行操作。這樣效果可以實現,但是頻繁連線資料庫,效能,效率上非常不好。mybatis支援引數為list的操作,這樣連線資料庫就一次,把迴圈的語句寫入到sql語句中,這樣效率會高很多...