在使用MyBatis进行操作数据库时,可以通过以下方法获取插入数据的主键:
useGeneratedKeys
属性设置为true
,并且将keyProperty
属性设置为一个对象的属性名,表示将生成的主键值设置到该对象的该属性上。例如:@Insert("INSERT INTO my_table (name) VALUES (#{name})")
@Options(useGeneratedKeys = true, keyProperty = "id")
int insertData(MyObject myObject);
在上述示例中,当插入数据后,生成的主键值会自动设置到MyObject
对象的id
属性上。
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
属性上。
SELECT LAST_INSERT_ID()
来获取生成的主键值。例如:@Insert("INSERT INTO my_table (name) VALUES (#{name})")
int insertData(MyObject myObject);
@Select("SELECT LAST_INSERT_ID()")
Long getLastInsertId();
在上述示例中,先插入数据后,再通过getLastInsertId
方法来获取生成的主键值。
以上是几种常用的获取主键的方法,可以根据具体的需求选择适合的方式。