在使用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
方法來獲取生成的主鍵值。
以上是幾種常用的獲取主鍵的方法,可以根據具體的需求選擇適合的方式。