情景
在编程的过程,操纵数据库为了提高性能,需要我们优化SQL语句。
以下介绍:1.批量新增 2.批量更新
- 一 、SQL:xml文件中批量操纵在数据库
1.批量新增
<insert id="insertList" parameterType="java.util.List" >
<!-- 注意 :主键数据库设置为了自增,所以我把主键去掉了-->
insert into ACTIVITYREVIEW_ATT(STATE,ACTRVWID,NAME,FILEFMT)
VALUES
<foreach collection="list" index="index" item="item" separator=",">
<trim prefix="(" suffix=")" suffixOverrides="," >
#{item.state,jdbcType=TINYINT},
#{item.actrvwid,jdbcType=INTEGER},
#{item.name,jdbcType=VARCHAR},
#{item.filefmt,jdbcType=VARCHAR}
</trim>
</foreach>
</insert>
2.批量更新
<!--更新:逻辑删除-->
<update id="deleteAchvOrgByPrimaryKey" parameterType="java.lang.Integer">
update ACHVORG
set STATE=1
where ACHVID in
<foreach close=")" collection="achvids" index="index" item="item" open="(" separator=",">
#{item,jdbcType=INTEGER}
</foreach>
</update>
- 二、Dao层的接口
// 新增 多附件的信息(多个)
int insertList(List<Activityreview_att> list);
//. 更新 【逻辑删除】 多个
int deleteAchvOrgByPrimaryKey (@Param ("achvids")Integer [] achvids);
参考文档
mybatis官方文档
mybatis中批量插入的两种方式(高效插入)