mybatis之批量查詢

2022-02-02 14:34:25 字數 1182 閱讀 9868

關於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);

單元測試:

@test

public

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語句中,這樣效率會高很多...