mybaits批量插入该如何操作
我们时长在批量插入时,需要获取插入数据的id.
这样:
<insert id="insertUser" parameterType="gys.entity.User" keyProperty="userId" useGeneratedKeys="true">INSERT INTO `user` (userName) VALUES (#{userName})</insert>
这样是没问题的.
但是有时候牵扯到批量插入,并且获取插入的id
这样写:
<insert id="insertUserBatch1" keyProperty="userId" useGeneratedKeys="true">INSERT INTO `user` (userName) VALUES<foreach collection="list" separator="," item="item">(#{item.userName})</foreach></insert>
这样运行后就会出现异常了.
这是因为你用的mybatis版本过低.比如我用的是3.2.2版本,这是mybatis的一个bug.
如果你换成3.4.4版本就没有问题了.
上面的sql语句换个写法 就又会报异常了(将insert包围在foreach里面)
比如:
<insert id="insertUserBatch2"> <foreach collection="list" separator=";" item="item"> INSERT INTO `user` (userName) VALUES (#{item.userName}) </foreach></insert>
同理还有update的批量更新也是有这个问题
<update id="updateUserBatch"><foreach collection="list" item="item" separator=";">update `user` set userName=#{item.userName} where userId=#{item.userId}</foreach></update>
这是因为mybatis默认是只能执行一条sql语句,
可以再链接路径的时候加上参数,就可以执行多条sql语句了.allowMultiQueries=true
以上是mybaits批量插入该如何操作的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Linux下system()函数的总结在Linux系统中,system()函数是一个非常常用的函数,它可以用于执行命令行命令。本文将对system()函数进行详细的介绍,并提供一些具体的代码示例。一、system()函数的基本用法system()函数的声明如下:intsystem(constchar*command);其中,command参数是一个字符

Git工作流程管理经验总结引言:在软件开发中,版本管理是一个非常重要的环节。而Git作为目前最流行的版本管理工具之一,其强大的分支管理能力使得团队协作更加高效灵活。本文将就Git工作流程管理经验进行总结和分享。一、Git工作流程简介Git支持多种工作流程,可以根据团队的实际情况选择合适的工作流程。常见的Git工作流程有集中式工作流、功能分支工作流、GitF

总结报告是职场生存的必备技能,如果有一篇条理清晰的PPT总结报告,既可以节省领导的时间,又可以有重点的总结工作,一定可以让领导印象深刻。ppt总结报告怎么写呢?一起来看看吧!我们打开一个案例文件,根据这个案例进行讲解。这个案例看起来有点过时,具体可见下图。2、我们既然要修改刚刚的PPT,我们来针对性的讲解一下他存在的问题,具体如图示。3、这里为同学们介绍一个【配色】的网站,vanschneider.com网站,这里网站在配色方面还是非常的丰富,具体如图示。4、这里我们将PPT的文字素材准备好,然

随着机器学习和量子计算的巨大进步,我们现在有了更强大的新工具,能够以新的方式与各行业研究者合作,并从根本上加速突破性科学发现的进展。 本期谷歌年终总结的主题是「自然科学」,文章作者为谷歌研究院的杰出科学家John Platt,1989年博士毕业于加州理工大学。自从八年前加入 Google Research 以来,我有幸成为一个天才研究人员的社区的一员,致力于应用前沿计算技术来推动应用科学的可能性,目前团队正在探索物理和自然科学的课题,从帮助组织全世界的蛋白质和基因组信息以造福人们的生活,到利用量

ThinkPHP是一款流行的PHP开发框架,具有灵活、高效、易用等特点,被广泛应用于Web应用程序的开发中。在长期的开发实践中,我总结了一些提升开发效率的技巧,以下将分享给大家。一、充分利用ThinkPHP的核心功能ThinkPHP提供了众多强大的核心功能,如模型、视图、控制器等,我们需要充分利用这些功能来简化开发流程。首先,要正确使用MVC设计模式,将业务

CSS中margin属性总结CSS中的margin属性用来设置元素的外边距,它可以控制元素与周围元素之间的间距。本文将对margin属性进行总结,并提供一些具体的代码示例供参考。margin属性有四个值,分别表示元素上、右、下和左的外边距。可以使用以下几种方式来设置margin值:单个值:设置所有方向的外边距都相等。例如:.margin{margin:

百度AI接口在Java开发中的应用案例解析与总结随着人工智能技术的不断发展和应用,百度AI接口作为其中的一员,被广泛应用于各行各业。本文将对百度AI接口在Java开发中的应用案例进行解析与总结,通过代码示例来说明其具体的应用方式和效果。一、百度AI接口概述百度AI接口是基于百度的人工智能技术,通过API调用的方式提供给开发者使用的一套服务。它包含了丰富的功能

MySQL储存引擎的总结与对比:哪个适合你的业务需求?引言:MySQL是一种广泛使用的关系型数据库管理系统,而储存引擎则是MySQL用于存储和管理数据的关键模块。MySQL提供了多种储存引擎,每种引擎都有其自己的特点和适用场景。本文将对MySQL常用的储存引擎进行总结和对比,并提供相应的业务需求建议。一、InnoDB引擎InnoDB是MySQL的默认储存引擎
