MyBatis如何使用selectKey返回主鍵的值
使用selectKey返回主鍵的值
使用<selectKey>標(biāo)簽來獲取插入操作主鍵返回的值。
對(duì)于MySQL數(shù)據(jù)庫(kù)
? <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后的值
實(shí)體類如下:
表結(jié)構(gòu)如下:
其中varId為主鍵,但非自增
@selectKey使用
@selectKey
statement
:指定查詢的語(yǔ)句keyProperty
:指定結(jié)果對(duì)應(yīng)的實(shí)體類的字段,如果是多個(gè)字段,采用逗號(hào),分隔。如varId,varName,keyColumn
:指定stament語(yǔ)句返回的列明,與keyProperty對(duì)應(yīng),如果多個(gè),采用逗號(hào)分隔。resultType
:返回值類型before
:ture,插入前執(zhí)行,false插入后執(zhí)行
插入時(shí),如何查詢當(dāng)前最大id,并賦值給實(shí)體類,示例如下:
方案1
插入前,首先查詢當(dāng)前最大的id,并賦值給實(shí)體對(duì)象
如下:
方案2
插入時(shí),獲取當(dāng)前最大值,插入
插入后,查詢當(dāng)前最大的id,并賦值給實(shí)體對(duì)象。
如下:
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java向Runnable線程傳遞參數(shù)方法實(shí)例解析
這篇文章主要介紹了Java向Runnable線程傳遞參數(shù)方法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06利用IDEA工具修改Maven多模塊項(xiàng)目標(biāo)識(shí)包名全過程記錄
當(dāng)我們?yōu)榧追椒?wù)提供軟件開發(fā)服務(wù)時(shí),需要按照甲方的要求去修改軟件的標(biāo)識(shí),對(duì)于Maven項(xiàng)目來說就對(duì)應(yīng)著groupId,一般地寫對(duì)方公司的域名,如com.example,接下來通過本文給大家分享IDEA修改Maven多模塊項(xiàng)目標(biāo)識(shí)包名,感興趣的朋友一起看看吧2022-09-09Mybatis實(shí)現(xiàn)動(dòng)態(tài)排序方式
這篇文章主要介紹了Mybatis實(shí)現(xiàn)動(dòng)態(tài)排序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10springboot啟動(dòng)時(shí)運(yùn)行代碼詳解
在本篇內(nèi)容中我們給大家整理了關(guān)于在springboot啟動(dòng)時(shí)運(yùn)行代碼的詳細(xì)圖文步驟以及需要注意的地方講解,有興趣的朋友們學(xué)習(xí)下。2019-06-06