返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis实现批量插入并返回主键(xml和注解两种方法)
  • 380
分享到

mybatis实现批量插入并返回主键(xml和注解两种方法)

2024-04-02 19:04:59 380人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录mybatis批量插入并返回主键(xml和注解两种方法)mybatis批量插入xml形式注解形式mybatis批量插入并返回主键笔记mapper中的代码xml中的代码,colle

mybatis批量插入并返回主键(xml和注解两种方法)

mybatis批量插入

Mysql数据库中支持批量插入,所以只要配置useGeneratedKeys和keyProperty就可以批量插入并返回主键了。

比如有个表camera,里面有cameraNo,chanIndex,cameraName这三个字段,其中cameraNo是自增主键。

下面是批量插入的Dao层接口:


void batchInsertCameras(@Param("list") List<Camera> cameras);

xml形式


<insert id="batchInsertCameras" useGeneratedKeys="true" keyProperty="cameraNo">
    insert into camera (chanIndex,cameraName)
    values
    <foreach collection="list" item="c" separator=",">
        (#{c.chanIndex},#{c.cameraName})
    </foreach>
</insert>

注解形式


@Insert("<script>insert into camera (chanIndex,cameraName) values " +
        "<foreach collection='list' item='c' separator=','>(#{c.chanIndex},#{c.cameraName})</foreach></script>")
@Options(useGeneratedKeys = true, keyProperty = "cameraNo")
void batchInsertCameras(@Param("list") List<Camera> cameras);

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

通过上面的xml形式或者注解形式的配置(我这是Spring Boot项目,引入的mybatis-spring-boot-starter,采用的是注解形式),就可以批量插入并返回主键了,主键会被设置到Camera对象的cameraNo字段中。


cameraMapper.batchInsertCameras(cameras);
for(Camera camera : cameras){
    System.out.println(camera.getCameraNo());
}

执行批量插入时,需确保至少有一条待插入的记录,否则会导致sql有误而报错。

mybatis批量插入并返回主键笔记

mapper中的代码


int insertBatchUserReturnId(List<User> users);

也可以在形参前面加上@Param("xxxx")

xml中的代码,collection必须填list类型


<insert id="insertBatchUserReturnId" keyProperty="userId" useGeneratedKeys="true">
 insert into message (user_id, user_name, user_type, user_passwd, user_phone,user_pic,user_address)
 values
 <foreach collection="list" item="item" open="(" close=")" separator=",">
  #{item.userId,jdbcType=INTEGER}, #{item.userName,jdbcType=VARCHAR}, #{item.userType,jdbcType=TINYINT}, 
  #{item.userPasswd,jdbcType=VARCHAR}, #{item.userPhone,jdbcType=VARCHAR},
  #{item.userPic,jdbcType=VARCHAR},#{item.userAddress,jdbcType=VARCHAR}
 </foreach>
</insert>

执行完这条语句之后,原来的users就会自动带上主键userId。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis实现批量插入并返回主键(xml和注解两种方法)

本文链接: https://lsjlt.com/news/159107.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mybatis实现批量插入并返回主键(xml和注解两种方法)
    目录mybatis批量插入并返回主键(xml和注解两种方法)mybatis批量插入xml形式注解形式mybatis批量插入并返回主键笔记mapper中的代码xml中的代码,colle...
    99+
    2024-04-02
  • Mybatis批量插入并返回主键id的方法
    目录场景错误分析原因排查问题场景 在做商城的时候,sku表进行了拆分,sku的基本信息以及sku的库存表。因为库存会经常的变动,会导致行锁。 这里就是新增的时候,因为在新增商品的时候...
    99+
    2024-04-02
  • mybatis怎么实现批量插入并返回主键
    本篇内容主要讲解“mybatis怎么实现批量插入并返回主键”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis怎么实现批量插入并返回主键”吧!mybatis批量插入并返回主键(xml和注...
    99+
    2023-06-21
  • Mybatis如何批量插入并返回主键id
    这篇文章主要介绍“Mybatis如何批量插入并返回主键id”,在日常操作中,相信很多人在Mybatis如何批量插入并返回主键id问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatis如何批量插入并返回主...
    99+
    2023-06-29
  • Mybatis---mybatis插入数据后返回自增主键ID的两种方式
    概要 开发过程中我们经常性的会用到许多的中间表,mybatis插入数据后返回自增主键的两种方式, 用于数据之间的对应和关联,这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中,我们数值的mybatis在插入数据后返回...
    99+
    2023-09-25
    mybatis
  • 如何用注解的方式实现Mybatis插入数据时返回自增的主键Id
    目录用注解实现Mybatis插入数据返回自增的主键Id设计数据库表设计Java bean对象添加mapper接口Mybatis注解增(返回自增id) 删查改以及(一对一,一对多,多对...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作