MyBatis如何使用selectKey返回主鍵的值
更新時間:2022年01月23日 09:58:45 作者:pbyang5689
這篇文章主要介紹了MyBatis如何使用selectKey返回主鍵的值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
使用selectKey返回主鍵的值
使用<selectKey>標簽來獲取插入操作主鍵返回的值。
對于MySQL數據庫
? <insert id="insert">
? ? ? ?insert into user(
? ? ? ?username, password, email, info, headImg, createTime)
? ? ? ?values(
? ? ? ?#{username}, #{password}, #{email},
? ? ? ?#{info}, #{headImg, jdbcType=BLOB},
? ? ? ?#{createTime, jdbcType=TIMESTAMP})
? ? ? ?<selectKey keyColumn="id" resultType="long" keyProperty="id" order="AFTER">
? ? ? ? ? SELECT LAST_INSERT_ID()
? ? ? ?</selectKey> ? ??
? ?</insert>通過selectkey返回insert或update后的值
實體類如下:

表結構如下:

其中varId為主鍵,但非自增
@selectKey使用
@selectKey
statement:指定查詢的語句keyProperty:指定結果對應的實體類的字段,如果是多個字段,采用逗號,分隔。如varId,varName,keyColumn:指定stament語句返回的列明,與keyProperty對應,如果多個,采用逗號分隔。resultType:返回值類型before:ture,插入前執(zhí)行,false插入后執(zhí)行
插入時,如何查詢當前最大id,并賦值給實體類,示例如下:
方案1
插入前,首先查詢當前最大的id,并賦值給實體對象
如下:

方案2
插入時,獲取當前最大值,插入
插入后,查詢當前最大的id,并賦值給實體對象。
如下:

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

