1. 程式人生 > >Jeesite 批量更新和批量插入

Jeesite 批量更新和批量插入

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層的方法即可