MySql批量操作数据库

2018-02-28 07:44:35来源:cnblogs.com作者:MrEven人点击

分享
第七城市
  • 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>
第七城市

微信扫一扫

第七城市微信公众平台