mybatis注解批量插入数据

mybatis注解批量插入数据

先上代码

需求:现在有用户表,角色表,关系表,方法传来了用户的id(userId),和用户所拥有哪些角色的id号,添加到他们两的关系表(sys_user_role)

 @Insert({
         "<script>" +
                 "insert into sys_user_role " +
                 "values" +
                 "<foreach collection='roleIds' item='roleId' separator=','>" +
                 "(${userId},${roleId})" +
                 "</foreach>" +
                 "</script>"
 })
 void saveByUserIdInsertSys_ur(@Param("userId") int userId, @Param("roleIds") Long[] roleIds);

解析:因为一个用户有许多角色,所以需要循环添加

代码理解

1.因为有多个参数需要写@Param,不然引用的地方都会找不到,而且写这个注解可以用$符号

2.因为有多个参数collection本来要写参数类型,但写在要写参数,因为他现在有二个参数

3.sql语句不要写错了,细心点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在tkmybatis中,可以通过实现特定的接口来实现批量插入数据的功能。引用中提到了tk.mybatis.mapper.common.special包中的InsertListMapper接口,该接口定义了insertList方法,可以用于批量插入数据。这个接口使用了@InsertProvider注解,指定了具体的提供者类SpecialProvider和方法dynamicSQL来执行插入操作。同时,通过@Options注解,设置了使用自动生成的主键以及对应的主键属性。 此外,引用中提到了另一个自定义的批量插入接口SpecialBatchMapper,它也可以用于批量插入数据。该接口也使用了@InsertProvider注解,指定了提供者类SpecialBatchProvider和方法insertListUseAllCols来执行插入操作。同样,通过@Options注解设置了使用自动生成的主键以及对应的主键属性。 另外,引用中还介绍了使用Mybatis框架批量插入数据的三种方法。其中,多次调用insert方法的方式适用于数据量较小的情况。而使用foreach标签和batch模式可以实现一次插入多条数据,从而提高插入效率。 因此,tkmybatis提供了多种方法来实现批量插入数据,可以根据具体需求选择合适的方式。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [tkmybatis -- 自定义批量插入的实现](https://blog.csdn.net/donkeyboy001/article/details/86903969)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Mybatis批量插入](https://blog.csdn.net/qq_43486404/article/details/126637141)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值