关于mybatis-plus:mybatis批量插入自动生成主键跟日期

39次阅读

共计 958 个字符,预计需要花费 3 分钟才能阅读完成。

在网上查了很多对于 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