欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySql批量操作数据库

程序员文章站 2022-07-01 09:55:38
1)批量插入 批量操作主要使用的是Mybatis的foreach,遍历参数列表执行相应的操作, 所以批量插入/更新/删除的写法是类似的,只是SQL略有区别而已。 mysql批量操作需要数据库连接配置allowMultiQueries=true才可以。
  • 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>