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>
上一篇: 学校是个笑乐场。