MyBatis如何使用selectKey返回主鍵的值
使用selectKey返回主鍵的值
使用<selectKey>標(biāo)簽來獲取插入操作主鍵返回的值。
對于MySQL數(shù)據(jù)庫
? <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:指定查詢的語句keyProperty:指定結(jié)果對應(yīng)的實(shí)體類的字段,如果是多個字段,采用逗號,分隔。如varId,varName,keyColumn:指定stament語句返回的列明,與keyProperty對應(yīng),如果多個,采用逗號分隔。resultType:返回值類型before:ture,插入前執(zhí)行,false插入后執(zhí)行
插入時,如何查詢當(dāng)前最大id,并賦值給實(shí)體類,示例如下:
方案1
插入前,首先查詢當(dāng)前最大的id,并賦值給實(shí)體對象
如下:

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

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
- MyBatis insert語句返回主鍵和selectKey標(biāo)簽方式
- mybatis?selectKey賦值未生效的原因分析
- Mybatis3中方法返回生成的主鍵:XML,@SelectKey,@Options詳解
- mybatis?獲取更新(update)記錄的id之<selectKey>用法說明
- mybatis的selectKey作用詳解
- Mybatis?selectKey 如何返回新增用戶的id值
- Mybatis插入時返回自增主鍵方式(selectKey和useGeneratedKeys)
- Mybatis @SelectKey用法解讀
- Mybatis示例之SelectKey的應(yīng)用
- MyBatis中selectKey標(biāo)簽及主鍵回填實(shí)現(xiàn)
相關(guān)文章
SpringBoot集成Redis使用Cache緩存的實(shí)現(xiàn)方法
SpringBoot通過配置RedisConfig類和使用Cache注解可以輕松集成Redis實(shí)現(xiàn)緩存,主要包括@EnableCaching開啟緩存,自定義key生成器,改變序列化規(guī)則,以及配置RedisCacheManager,本文為使用SpringBoot與Redis處理緩存提供了詳實(shí)的指導(dǎo)和示例,感興趣的朋友一起看看吧2024-10-10
Java中使用While語句自增運(yùn)算遍歷數(shù)組典型實(shí)例
這篇文章主要介紹了Java中使用While語句自增運(yùn)算遍歷數(shù)組典型實(shí)例,本文直接給出實(shí)例代碼,并對每一句代碼都注解了詳細(xì)注釋,需要的朋友可以參考下2015-06-06
spring?cache注解@Cacheable緩存穿透詳解
這篇文章主要介紹了spring?cache注解@Cacheable緩存穿透詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
java gui詳解貪吃蛇小游戲?qū)崿F(xiàn)流程
剛開始學(xué)JAVA GUI,就練手寫了一個小時候經(jīng)常在諾基亞上玩的一個小游戲__貪吃蛇.做的比較簡單,但還是可以玩的.感興趣的朋友快來看看吧2021-11-11
Spring Security的持久化用戶和授權(quán)實(shí)現(xiàn)方式
文章介紹了如何使用JdbcUserDetailsManager實(shí)現(xiàn)數(shù)據(jù)庫讀取用戶,并展示了如何配置SpringSecurity進(jìn)行授權(quán)管理,通過創(chuàng)建數(shù)據(jù)庫表、配置數(shù)據(jù)庫連接和修改SecurityConfig,實(shí)現(xiàn)了用戶權(quán)限的控制2025-02-02
mybaties plus實(shí)體類設(shè)置typeHandler不生效的解決
這篇文章主要介紹了mybaties plus實(shí)體類設(shè)置typeHandler不生效的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

