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

在网上查了很多关于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日期时间格式

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值