使用数据库自增主键
对于支持自增主键的数据库(如 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主键生成内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论