Mybatis 批量增加/更新/删除 操作,注意修改数据库配置url !!

Mybatis 批量增删改查CRUD操作

一个小坑,如果数据库配置不加上allowMultiQueries=true这个属性的话,执行时sql语句会报错!

Srping:
  datasource:
    url: jdbc:mysql://localhost:3306/test?allowMultiQueries=true

结合动态sql 话不多说,直接上码
// 批量插入

  <insert id="insert" parameterType="java.util.List" >
    insert into t_flow (id, group_id, flow_content,
      flow_time)
    values
    <foreach collection="list" item="item" index="index" separator=",">
      #{item.id,jdbcType=int},
      #{item.groupId,jdbcType=CHAR},
      #{item.flowContent,jdbcType=VARCHAR},
      #{item.flowTime,jdbcType=TIMESTAMP})
    </foreach>
  </insert>

//批量更新 (有则更新无则插入)

<insert id="insert" parameterType="java.util.List" >
    insert into t_flow (id, group_id, flow_content,
    flow_time)
    values
    <foreach collection="list" item="item" index="index" separator=",">
      (#{item.id,jdbcType=INTEGER},
      #{item.groupId,jdbcType=CHAR},
      #{item.flowContent,jdbcType=VARCHAR},
      #{item.flowTime,jdbcType=TIMESTAMP})
    </foreach>
    ON DUPLICATE KEY UPDATE
    group_id=VALUES(group_id),
    flow_content=VALUES(flow_content),
    flow_time=VALUES(flow_time)
  </insert>

//批量删除

 <delete id="delete" parameterType="java.util.List">
        delete from t_flow where id in
        <foreach item="item" collection="list" open="(" separator="," close=")">
            #{item.id,jdbcType=INTEGER}
        </foreach>
    </delete>

发布了7 篇原创文章 · 获赞 7 · 访问量 1849

猜你喜欢

转载自blog.csdn.net/TheJam/article/details/104744846