mybatis批量插入与批量更新。

最近做了一个项目用到了mybatis,针对mysql数据库的批量查询与批量更新,现在项目做完了,记下来。 
1、批量插入


这是mapper接口

int insertAll(@Param("list") ArrayList<Question> list, @Param("m_id") Integer m_id);

由于我要做的是一个多对一的关联,所以接口中传入了一个集合和一个Integer类型,当然要用@param 注解加于区分他们的名字。


对应的mapper配置

<!-- 批量 插入 -->
	<insert id="insertAll">
		insert into t_result(m_id,q_id)
		values
		<foreach collection="list" item="item" index="index"
			separator=",">
			(#{m_id,jdbcType=INTEGER},#{item.id,jdbcType=INTEGER})
		</foreach>
	</insert>

对应上面代码应该很好看出怎么做


2、批量更新

               这个是接口

int updateResluts(ArrayList<Result> list);

由于这里只有一个list集合所以可以不用@param注解,但是这里的形参必须为list,当然这是在没有用@param注解的前提下。


这是对应的mapper配置

<!-- 批量更新答案 -->
	<update id="updateResluts" parameterType="java.util.ArrayList">
		<foreach collection="list" item="item" index="index" open=""
			close="" separator=";">
			update t_result
				<set>
					result = #{item.result,jdbcType=VARCHAR}
				</set>
			where m_id = #{item.m_id,jdbcType=INTEGER} and q_id =
			#{item.q_id,jdbcType=INTEGER}
		</foreach>
	</update>

在进行批量更新测试前,必须在jdbc配置文件链接上加上

allowMultiQueries=true


完整的如下

jdbc.url=jdbc:mysql://ip:3306/xxx?characterEncoding=UTF-8&allowMultiQueries=true

好了,现在可以测试了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值