【mybatis 】mybatis foreach操作動態表
阿新 • • 發佈:2018-11-17
1.傳入的資料key為表的欄位,value為值。Map<String, String>。
int saveDatalist(@Param("params")Map<String, String> params);
<!-- 儲存新增資料 --> <insert id="saveDatalist" parameterType="java.util.Map"> insert into ZR_REC_PARKINFO <foreach collection="params.keys" item="key" index="index" open="(" separator="," close=")"> ${key} </foreach> values <foreach collection="params.keys" item="key" index="index" open="(" separator="," close=")"> #{params[${key}]} </foreach> </insert>
2.
<!-- 儲存新增資料 --> <insert id="saveDatalistTable" parameterType="java.util.HashMap"> insert into ${table} <foreach collection="listMap.keys" item="key" index="index" open="(" separator="," close=")"> ${key} </foreach> values <foreach collection="listMap.keys" item="key" index="index" open="(" separator="," close=")"> #{listMap[${key}]} </foreach> </insert>
3.java.util.Map儲存著p_code,list,pama。pama存著一個Map,list是要插入的欄位(pama的欄位更多)。
<!-- 儲存新增資料 --> <insert id="saveDatalist" parameterType="java.util.Map"> insert into ${p_code} <foreach collection="list" item="k" index="index" open="(" separator="," close=")"> ${k} </foreach> values <foreach collection="list" item="k" index="index" open="(" separator="," close=")"> ${pama[k]} </foreach> </insert>
4.當表名和欄位都不知時,批量操作。java.util.List將上面的Map存入。
<!-- 儲存新增資料 -->
<insert id="saveDatalist2" parameterType="java.util.List" useGeneratedKeys="false">
INSERT ALL
<foreach collection = "list" item ="item" index ="index">
into ${item.p_code}
<foreach collection="item.list" item="k" index="index" open="(" separator="," close=")">
${k}
</foreach>
values
<foreach collection="item.list" item="k" index="index" open="(" separator="," close=")">
${item.pama[k]}
</foreach>
</foreach>
select 1 from dual
</insert>