批量新增Mapper 定义
public interface BaseHouseMapper {
// 批量新增Mapper 定义
void batchInsert(@Param("list") List<BaseHouse> list);
// 批量修改Mapper 定义
void batchUpdate(@Param("list") List<BaseHouse> list);
}
XML 定义
<insert id="batchInsert" paramterType ="java.util.List">
insert into BASE_HOUSE(BIZ_ID, PROJECT_ID, BUILDING_ID, ******)
<foreach collection="list" item ="item" index = "index" separator="union all">
select #{item.bizId}, #{item.projectId}, #{item.buildingId}, ****** from dual
</foreach>
</insert>
<update id="batchUpdate" paramterType ="java.util.List">
<foreach collection="list" item ="item" index = "index" open ="begin" close=";end;" separator=",">
update BASE_HOUSE
set
PROJECT_ID = #{item.projectId},
BUILDING_ID = #{item.buildingId},
******
where BIZ_ID = #{item.bizId}
</foreach>
</update>
拓展:Oracle + MyBatis 3另一种批量插入方法。
<insert id="batchInsert" parameterType="java.util.List">
INSERT ALL
<foreach item="item" index="index" collection="list">
INTO BASE_HOUSE
(
BIZ_ID,
PROJECT_ID,
BUILDING_ID,
******
) VALUES
(
#{item.bizId},
#{item.projectId},
#{item.buildingId},
******
)
</foreach>
SELECT 1 FROM DUAL
</insert>