mybatis批量处理
1.list数据批量插入
int insertPaperDetailBatch(List<Map<String, Object>> paperList);
<insert id="insertPaperDetailBatch"> insert into T_PAPERDETAIL (SBJ_CODE,INDI_CODE,PAPER_ID,SCORE) <foreach close=")" collection="list" item="item" index="index" open="(" separator="union"> select #{item.sbjCode}, #{item.indiCode}, #{item.paperId}, #{item.score} from dual </foreach> </insert>
2.根据现有表数据判断是插入数据还是更新数据
<insert id="insertExamEEBatchMergeNotSelf"> merge into T_EXAMINEE e using (select distinct(EXA_CODE) as EXA_CODE, PLAN_CODE, EXA_DEPT_CODE, EXA_DUTY_CODE, GROUP_ID, SCORE_STATE from T_EXAMREL_WK) t on (e.PLAN_CODE = t.PLAN_CODE and e.EXA_CODE =t.EXA_CODE and e.isself is null) when not matched then insert ( EXA_ID, PLAN_CODE, EXA_CODE, EXA_DEPT_CODE, EXA_DUTY_CODE, GROUP_ID, SCORE_STATE ) values ( 'EA'||SEQ_EXA_ID.NEXTVAL, t.PLAN_CODE, t.EXA_CODE, t.EXA_DEPT_CODE, t.EXA_DUTY_CODE, t.GROUP_ID, t.SCORE_STATE ) when matched then update set EXA_DEPT_CODE =t.EXA_DEPT_CODE, EXA_DUTY_CODE = t.EXA_DUTY_CODE, GROUP_ID = t.GROUP_ID, SCORE_STATE = t.SCORE_STATE </insert>
3.根据list数据判断进行merge操作
int insertPlugrelBatch(List<Map<String,Object>> plugrelList);
<insert id="insertPlugrelBatch">
<foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";">
merge into T_PLUG t
using
(select #{item.key1} as planCode,
#{item.key2} as empeCode,
#{item.key6} as officeCode,
#{item.key4} as deptCode
from dual) u
on (t.PLAN_CODE = u.planCode and
t.EMPE_CODE = u.empeCode and
t.DEPT_CODE = u.deptCode
)
when not matched then
insert
(PLAN_CODE,
EMPE_CODE,
EMPE_NAME,
DEPT_CODE,
DEPT_NAME,
OFFICE_CODE,
OFFICE_NAME)
values
(#{item.key1},
#{item.key2},
#{item.key3},
#{item.key4},
#{item.key5},
#{item.key6},
#{item.key7}
)
when matched then
update
set
EMPE_NAME = #{item.key3},
DEPT_NAME = #{item.key5},
OFFICE_NAME = #{item.key7}
</foreach>
</insert>
4.查询数据存放map中,避免创建对象,实际返回对象也是将对应结果放入对象变量中
List<Map<String, Object>> selectEx(); <select id="selectEx" resultType="java.util.HashMap"> SELECT PLAN_CODE, EVA_CODE, EXA_CODE FROM T_EX </select>

浙公网安备 33010602011771号