普通sql中insert插入多条
insert into 表名(字段名1,字段名2)values(值a1,值b1), (值a2,值b2),
例如:
insert into user_info (user_account,user_name,user_age,user_class) values (‘00001’, '张三 ',‘20’,‘计算机系’), (‘00002’, ‘李四’,‘19’,‘计算机系’);

在values中用括号分隔开多条即可

因此在mybatis中 也是用foreach拼出来这种

在mapper.java中 接口
int insertBatch(@Param(“capitalDetailDOList”) List capitalDetailDOList);

要注意这个注解param 必须是
import org.apache.ibatis.annotations.Param;

不然无法找到该参数
然后把foreach里面的值设置为parm里面的命名

<insert id="insertBatch" parameterType="java.util.List">INSERT INTO  t_capital_detail(batch_no, organize_id, organize_name,)VALUES<foreach collection="capitalDetailDOList" index="index" item="capitalDetailDO" open="(" separator="," close=")">#{capitalDetailDO.batchNo,jdbcType=VARCHAR}, #{capitalDetailDO.organizeId,jdbcType=BIGINT}, #{capitalDetailDO.organizeName,jdbcType=VARCHAR},</foreach>

但是如上的xml写法是错的,在list里面是一条的时候没有问题,但是如果多条的时候,拼成的sql就成了
INSERT INTO t_capital_detail (batch_no, organize_id, organize_name)VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, … )

因为foreach里面没有合理的分隔开各个项的值。这样会报字段不匹配的错误

正确的写法应该是

<insert id="insertBatch" parameterType="java.util.List">INSERT INTO  t_capital_detail(  batch_no, organize_id, organize_name  )VALUES  <foreach collection="capitalDetailDOList" index="index" item="capitalDetailDO" separator=","  >
(#{capitalDetailDO.batchNo,jdbcType=VARCHAR}, #{capitalDetailDO.organizeId,jdbcType=BIGINT}, #{capitalDetailDO.organizeName,jdbcType=VARCHAR},
)</foreach>

把括号放在里面,且去掉foreach里面的open 和close的的括号

mybatis insert 插入多条数据相关推荐

  1. 【SpringBoot项目中使用Mybatis批量插入百万条数据】

    SpringBoot项目中使用Mybatis批量插入百万条数据 话不多说,直接上代码,测试原生批处理的效率 开始测试 背景:因为一些业务问题,需要做多数据源,多库批量查询.插入操作,所以就研究了一下. ...

  2. java使用mybatis一次性插入多条数据

    项目场景: java使用ibatis作为持久层框架时如何一次性插入多条数据 问题描述 正常插入一条数据的代码是这样的 mapper.insert(model) 问题分析: 这样单条插入是没有问题,问题 ...

  3. 公司新来个同事,MyBatis批量插入10w条数据仅用2秒,拍案叫绝!

    批量插入功能是我们日常工作中比较常见的业务功能之一,今天咱们来一个 MyBatis 批量插入的汇总篇,同时对 3 种实现方法做一个性能测试,以及相应的原理分析. 先来简单说一下 3 种批量插入功能分别 ...

  4. Mybatis+Oracle插入万条数据

    最近工作中使用到批量删除,试了试网上的几种方法,下面三种方法都是插入2万条数据 使用oracle的insert all 特别注意:mysql默认接受sql的大小是1048576(1M),若数据量超过1 ...

  5. php执行一条insert插入两条数据其中一条乱码

    显然这就是编码问题,但是问题从哪来的呢, 我把文件编码以及代码的编码都设置成utf-8了,为什么还有这个问题于是我就开始写测试脚本 第一条 mysql_query('insert into table ...

  6. insert批量插入500ms_如何快速安全的插入千万条数据

    作者:ksfzhaohui 最近有个需求解析一个订单文件,并且说明文件可达到千万条数据,每条数据大概在20个字段左右,每个字段使用逗号分隔,需要尽量在半小时内入库. 思路 1.估算文件大小 因为告诉文 ...

  7. mybatis一次 行插入十万条数据优化问题;

    废话不多说直接上代码:mapper文件中: <insert id="saveList" parameterType="hashmap" >      ...

  8. python mysql批量insert数据、返回id_Python3 操作 MySQL 插入一条数据并返回主键 id的实例...

    Python 中貌似并没有直接返回插入数据 id 的操作(反正我是没找到),但是我们可以变通一下,找到最新插入的数据 #!/usr/bin/env python3 # -*- coding: UTF- ...

  9. mybatis笔记之一次插入多条数据sql语句写法

    mybatis笔记之一次插入多条数据sql语句写法

最新文章

  1. python数字和运算_Python学习笔记:数字类型和运算符,与
  2. 设计模式[20]-Builder
  3. DM3730 LCD控制器驱动框架
  4. [No0000B5]C# 类型基础 值类型和引用类型 及其 对象判等 深入研究1
  5. 学习python 基础密码验证
  6. Tomcat日志设定
  7. python下载网易云音乐付费歌曲有哪些_学习python总结 - 下载网易云音乐单首歌曲...
  8. Error in macro ./uart_scope_run_msim_rtl
  9. android多图拼接长图并合理显示
  10. python脚本编程基础读后感_Python入门经典的读后感10篇
  11. 小甲鱼python入门笔记(一)(全)
  12. STP/RSTP协议(二)
  13. 一球从h米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时共经过多少米?反弹多高?
  14. 微博--图片,视频,评论抓取
  15. 删除表字段的sql语句
  16. 小程序突然报module is not defined_蔬菜“英文”小故事(九)
  17. 力扣每日一题2021-12-24中等题:吃苹果的最大数目
  18. ArcMap如何打开.adf图层文件并将其文件转换为shp文件
  19. WordPress如图略缩图不显示问题
  20. 第一章 SQLite数据库介绍

热门文章

  1. python适合开发游戏吗_对编程一知半解,如何带娃像玩游戏一样“玩”编程?
  2. IOS项目证书,描述文件等生成和配置 整理
  3. 盘古开源:深化能源大数据中心建设,助力能源清洁低碳转型
  4. java不是有效的win32_jdk不是有效的win32程序解决办法
  5. Nand Flash源码分析(s5pv210)
  6. 2022年山东省安全员B证考试及山东省安全员B证考试内容
  7. FM算法原理及如何用来召回
  8. lol 服务器 不稳定,LOL手游评分持续下跌,服务器不稳被国外玩家狂喷
  9. Java小白入门200例30之打印全三角形
  10. 在一个java文件中写多个类