温馨提示×

mybatis怎么获取主键

小亿
123
2023-08-18 21:25:25
栏目: 编程语言

在使用MyBatis进行操作数据库时,可以通过以下方法获取插入数据的主键:

  1. 在插入数据时,使用useGeneratedKeys属性设置为true,并且将keyProperty属性设置为一个对象的属性名,表示将生成的主键值设置到该对象的该属性上。例如:
@Insert("INSERT INTO my_table (name) VALUES (#{name})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insertData(MyObject myObject);

在上述示例中,当插入数据后,生成的主键值会自动设置到MyObject对象的id属性上。

  1. 使用selectKey元素来执行一个查询语句,该查询语句会返回插入数据后生成的主键值。例如:
<insert id="insertData" parameterType="com.example.MyObject">
<selectKey keyProperty="id" resultType="java.lang.Long" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO my_table (name) VALUES (#{name})
</insert>

在上述示例中,selectKey元素会执行一个查询语句SELECT LAST_INSERT_ID(),并将查询结果设置到MyObject对象的id属性上。

  1. 在插入数据后,可以通过SELECT LAST_INSERT_ID()来获取生成的主键值。例如:
@Insert("INSERT INTO my_table (name) VALUES (#{name})")
int insertData(MyObject myObject);
@Select("SELECT LAST_INSERT_ID()")
Long getLastInsertId();

在上述示例中,先插入数据后,再通过getLastInsertId方法来获取生成的主键值。

以上是几种常用的获取主键的方法,可以根据具体的需求选择适合的方式。

0