Post

Using Mybatis Self Increment Primary Key In Postgresql

Using Mybatis Self Increment Primary Key In Postgresql

PostgreSQL 使用 MyBatis 自增主键

在 PostgreSQL 中使用 MyBatis 实现自增主键,可以通过创建序列并在插入数据时调用该序列来实现。

创建自增序列

首先,创建一个自增序列:

1
CREATE SEQUENCE user_id_seq START 1;

然后,在表定义中设置字段的默认值为该序列的下一个值:

1
2
3
4
5
CREATE TABLE "public"."user" (
    "id" int4 NOT NULL DEFAULT nextval('user_id_seq'),
    "name" varchar(50) COLLATE "pg_catalog"."default",
    CONSTRAINT "user_pkey" PRIMARY KEY ("id")
);

在 MyBatis 中使用自增主键

在 MyBatis 的 XML 配置文件中,可以通过 <selectKey> 元素来获取插入后的自增主键值。

1
2
3
4
5
6
7
<insert id="addUser" parameterType="com.congge.entity.TUser">
INSERT INTO user (name)
VALUES (#{name})
<selectKey keyProperty="id" resultType="java.lang.Integer" order="AFTER">
SELECT nextval('user_id_seq') as id
</selectKey>
</insert>

这样,在插入数据后,MyBatis 会自动获取并设置自增主键的值。

注意事项

序列冲突:在数据迁移时,可能会遇到主键冲突的问题。可以通过调整序列的起始值来避免这种情况。

批量插入:对于批量插入操作,可以在 XML 配置文件中使用 <foreach> 元素来实现。

This post is licensed under CC BY 4.0 by the author.