Mybatis获取自增长id

Mybatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。Mybatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)为数据库中的记录。当插入记录时,Mybatis 可以获取数据库生成的自增长id,可以通过以下三种方式来获取:

1、使用selectKey标签

Mybatis提供了selectKey标签,它可以在插入记录之前,先执行一个查询,获取自增长id,然后将自增长id设置到相应的参数中,最后执行插入记录操作。下面是一个示例:

<insert id="insertRecord" parameterType="com.xxx.model.Record">
  <selectKey keyProperty="id" resultType="int" order="BEFORE">
    SELECT LAST_INSERT_ID() AS id
  </selectKey>
  INSERT INTO record(name, age) VALUES (#{name}, #{age})
</insert>

2、使用@Options注解

使用@Options注解可以在插入记录时,获取自增长id,然后将自增长id设置到相应的参数中。下面是一个示例:

@Options(useGeneratedKeys = true, keyProperty = "id")
@Insert("INSERT INTO record(name, age) VALUES (#{name}, #{age})")
int insertRecord(Record record);

3、使用useGeneratedKeys属性

Mybatis提供了useGeneratedKeys属性,它可以在插入记录时,获取自增长id,然后将自增长id设置到相应的参数中。下面是一个示例:

<insert id="insertRecord" parameterType="com.xxx.model.Record" useGeneratedKeys="true" keyProperty="id">
INSERT INTO record(name, age) VALUES (#{name}, #{age})
</insert>

Spring-data-jpa获取自增长id

Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套 JPA 应用框架,可使开发者用极简的代码即可实现对数据的访问和操作。Spring Data JPA 提供了一种可以自动生成实体类的 ID 的方式,只需要在实体类中使用 @GeneratedValue 注解,就可以让 Spring Data JPA 自动帮我们生成主键。

@Entity
public class Record {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private String name;
    private int age;
    // getter、setter
}

当插入记录时,Spring Data JPA 会自动将自增长id设置到相应的参数中,可以通过get方法获取该id。