当前位置: 代码网 > it编程>编程语言>Java > 浅谈mybatis主键生成的几种策略

浅谈mybatis主键生成的几种策略

2026年01月26日 Java 我要评论
使用数据库自增主键对于支持自增主键的数据库(如 mysql),可以在 mybatis 的 `` 标签中设置 usegeneratedkeys="true" 和 keypropert

使用数据库自增主键

对于支持自增主键的数据库(如 mysql),可以在 mybatis 的 `` 标签中设置 usegeneratedkeys="true"keyproperty 属性来自动获取并填充生成的主键值。

<insert id="insertuser" parametertype="user" usegeneratedkeys="true" keyproperty="id">
    insert into user (name, age) values (#{name}, #{age})
</insert>

使用 select last_insert_id() 函数
在插入数据后,通过 select last_insert_id() 函数获取自动生成的主键值,并使用 <selectkey> 标签将其赋值给实体对象的属性。

<insert id="insertuser" parametertype="user">
    insert into user (name, age) values (#{name}, #{age})
    <selectkey resulttype="int" keyproperty="id" order="after">
        select last_insert_id()
    </selectkey>
</insert>

使用 uuid 生成主键

对于需要唯一标识符的场景,可以在 java 代码中生成 uuid,并将其作为主键值传入数据库。

public class user {
    private string id;
    
    public user() {
        this.id = uuid.randomuuid().tostring();
    }
}

mybatis-plus 提供了更简便的主键生成方式,如雪花算法(snowflake)。通过在实体类中使用 @tableid 注解并配置相应的主键策略,mybatis-plus 会自动填充主键 id。

import com.baomidou.mybatisplus.annotation.idtype;
import com.baomidou.mybatisplus.annotation.tableid;
import com.baomidou.mybatisplus.annotation.tablename;
@tablename("user")
public class user {
    @tableid(type = idtype.auto)
    private long id;
    
    //...
}

通过以上方法,mybatis 可以根据不同的需求自动填充主键 id,简化开发过程。

到此这篇关于浅谈mybatis主键生成策略的文章就介绍到这了,更多相关mybatis主键生成内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com