在网上查了很多对于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
日期工夫格局