mybatis批量操作

<dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.3.1</version>
      </dependency>
      <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.2.4</version>
      </dependency>

注意使用以上版本才不报错 版本支持问题

//插入
@Insert({
		 "<script>",
		 "insert into 1688_tips_option (option_id,tips_id) values ",
		 "<foreach collection='list' item='item' index='index' separator=','>",
		 "(#{item.option_id}, #{item.tips_id})",
		 "</foreach>",
		 "</script>"
		})
	@Options(useGeneratedKeys=true, keyProperty="id",keyColumn="id")
	void innerTipsAndOptions(@Param("list")List<TipsAndOption> list);
//查询
 @Select({
		 "<script>",
		 " SELECT * FROM supervisorsignin_subsidy WHERE id in (",
		 " <foreach collection='list' item='item' index='index' separator=','>",
		 " (#{item})",
		 " </foreach>)",
		 " </script>"
		})
	public abstract List<SupervisorsigninSubsidy> findBymonthlywagesdetail(@Param("list") List<String> list);

注意:@Param里必须写成list, foreach的collection也必须写成list,否则批量插入后会报错说找不到"cameraNo"字段,而无法返回主键。

@Options(useGeneratedKeys = true, keyProperty = “cameraNo”):加入返回主键ID,不然返回0,
keyProperty = “id” : 不需要添默认也是id,如果是其他可以填上
collection: 指定要遍历的集合(三种情况 list,array,map) !!!!在这种使用注解sql的情况下,这里请填写mapper方法中集合的名称

item:将当前遍历出的元素赋值给指定的变量 (相当于for循环中的i)
separator:每个元素之间的分隔符
index:索引。遍历list的时候是index就是索引,item就是当前值
#{变量名}就能取出变量的值也就是当前遍历出的元素

注意:@Param使用的是org.apache.ibatis.annotations.Param包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值