网站首页 > 开源技术 正文
在网上查了很多关于mybatis-plus的批量插入,由于大多使用自增主键,不需要自动生成uuid主键网上的大部分代码为
<insert id="insertBatch" parameterType="java.util.List">
insert into user (id, name, age, create_date, create_time, create_date_time) values
<foreach collection="list" item="item" separator=",">
<trim prefix="(" suffix=")" suffixOverrides=",">
#{item.id}, #{item.name}, #{item.age}, #{item.createDate}, #{item.createTime},#{item.createDateTime}
</trim>
</foreach>
</insert>
上面这种方式是必须传入列表时就生成id,但有时候并不想这样做,想直接从前端传入列表就进行批量插入,而user表主键id又不是自增型,此时想到了一个下面这种方式。
<insert id="insertBatch" parameterType="java.util.List">
insert into user (id, name, age, create_date) values
<foreach collection="list" item="item" separator=",">
<trim prefix="(" suffix=")" suffixOverrides=",">
(select replace(uuid(), '-', '') as id), #{item.name}, #{item.age}, current_date(),current_time(),current_timestamp()
</trim>
</foreach>
</insert>
replace(uuid(), '-', '')
将生成的uuid格式中的-替换''成32位的字符串
current_date
生成yyyy-MM-dd日期格式
current_time
生成HH:mm:ss时间格式
current_timestamp
生成yyyy-MM-dd HH:mm:ss日期时间格式
猜你喜欢
- 2025-07-03 面试官竟然问我订单ID是怎么生成的?难道不是MySQL自增主键?
- 2025-07-03 MySQL中如何设置自动递增id主键重新计数从1开始?
- 2025-07-03 领导不让用UUID作为MySQL主键,那我用啥?
- 2025-07-03 长方形主键/指纹识别 MX4 Pro真机曝光
- 2025-07-03 如何利用Redis做数据库的主键生成机制
- 2025-07-03 揪出那个无主键的表(mysql无主键)
- 2025-07-03 主键ID的几种生成方式(主键id的几种生成方式)
- 2025-07-03 access利用DAO设置数据表的主键(access设置主键的方法)
- 2025-07-03 保障数据完整性:深入解析Oracle数据库的主键和外键约束
- 2025-07-03 如何计算InnoDB主键索引B+树的高度?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)