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日期时间格式

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容