前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mybatis批量插入自动生成主键跟日期

mybatis批量插入自动生成主键跟日期

原创
作者头像
用户6682160
修改2021-09-02 14:17:57
1.3K0
修改2021-09-02 14:17:57
举报
文章被收录于专栏:日常问题记录日常问题记录

在网上查了很多关于mybatis-plus的批量插入,由于大多使用自增主键,不需要自动生成uuid主键网上的大部分代码为

代码语言:txt
复制
<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又不是自增型,此时想到了一个下面这种方式。

代码语言:txt
复制
<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日期时间格式

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档