MySql批量操作数据库

Posted on 2018-02-27 11:19  MrEven  阅读(3022)  评论(0编辑  收藏  举报
  • 1)批量插入
  • 批量操作主要使用的是Mybatis的foreach,遍历参数列表执行相应的操作,
  • 所以批量插入/更新/删除的写法是类似的,只是SQL略有区别而已。
  • mysql批量操作需要数据库连接配置allowMultiQueries=true才可以。
  • <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true">
  • <foreach close="" collection="list" index="index" item="item" open="" separator=";">
  • insert into user (name, age,dept_code) values
  • (#{item.name,jdbcType=VARCHAR},
  • #{item.age,jdbcType=INTEGER},
  • #{item.deptCode,jdbcType=VARCHAR}
  • )
  • </foreach>
  • </insert>
  • 或者
  • <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true">
  • insert into user (name, age,dept_code) values
  • <foreach collection="list" index="index" item="item" open="" close="" separator=",">
  • (#{item.name,jdbcType=VARCHAR},
  • #{item.age,jdbcType=INTEGER},
  • #{item.deptCode,jdbcType=VARCHAR}
  • )
  • </foreach>
  • </insert>
  • (2)批量更新
  • <update id="batchUpdate" parameterType="java.util.List">
  • <foreach close="" collection="list" index="index" item="item" open="" separator=";">
  • update user set name=#{item.name,jdbcType=VARCHAR},age=#{item.age,jdbcType=INTEGER}
  • where id=#{item.id,jdbcType=INTEGER}
  • </foreach>
  • </update>
  • (3)批量删除
  • <delete id="batchDelete" parameterType="java.util.List">
  • <foreach close="" collection="list" index="index" item="item" open="" separator=";">
  • delete from user
  • where id=#{item.id,jdbcType=INTEGER}
  • </foreach>
  • </delete>

 

  • 二、模糊查询
  • <select id="selectLikeName" parameterType="java.lang.String" resultMap="BaseResultMap">
  • select
  • <include refid="Base_Column_List" />
  • from user
  • where name like CONCAT('%',#{name},'%' )
  • </select>

Copyright © 2024 MrEven
Powered by .NET 8.0 on Kubernetes