Jeesite 批量更新和批量插入
阿新 • • 發佈:2019-01-10
Jeesite 批量更新和批量插入
xml配置
<insert id="batchInsertList"> INSERT INTO t_dc_bug( zt_bug_id, product_id ) VALUES <foreach item="item" index="index" collection="insertBugList" separator=","> ( #{item.ztBugId}, #{item.productId} ) </foreach> </insert> <update id="batchUpdateList"> UPDATE t_dc_bug <trim prefix="set" suffixOverrides=","> <trim prefix="product_id =case" suffix="end,"> <foreach collection="updateBugList" item="item" index="index"><!-- collection 要 dao 設定@param來識別 --> <if test="item.productId != null"> when zt_bug_id = #{item.ztBugId} then #{item.productId} </if> </foreach> </trim> <trim prefix="group_id =case" suffix="end,"> <foreach collection="updateBugList" item="item" index="index"> <if test="item.groupId != null"> when zt_bug_id = #{item.ztBugId} then #{item.groupId} </if> </foreach> </trim> </trim> WHERE <foreach collection="updateBugList" separator="or" item="item" index="index"> zt_bug_id = #{item.ztBugId} </foreach> </update>
jeesite.properties 配置資料庫
jdbc連結加allowMultiQueries=true,表示允許批量操作
db1.url=jdbc:mysql://IP地址:埠/資料庫名?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&allowMultiQueries=true
Dao層
dao層要加@param(“list”)引數給list宣告
/** * 批量插入 * @param bugList */ void batchInsertList(@Param("insertBugList") List<DcBug> insertBugList); /** * 批量更新 * @param updateBugList */ void batchUpdateList(@Param("updateBugList") List<DcBug> updateBugList);
service層
/** * 批量插入 * @param bugList */ @Transactional(readOnly = false) public void batchInsertList(List<DcBug> insertBugList) { dao.batchInsertList(insertBugList); } /** * 批量更新 * @param updateBugList */ @Transactional(readOnly = false) public void batchUpdateList(List<DcBug> updateBugList) { dao.batchUpdateList(updateBugList); }
controller層
呼叫service層的方法即可