mybatis 新增返回id的實現(xiàn)
前言
插入一條數(shù)據(jù)并返回ID的場景很常見,mybatis的要麻煩一點,mybatis-plus可能之前api插入再getId()就行了,這里說一下Mybatis的兩個方式。
一、第一種方式
在實體類的映射文件 “*Mapper.xml” 這樣寫:
<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.xxx.mybatis.User"> insert into user(userName,password,comment) values(#{userName},#{password},#{comment}) </insert>
小Tips:
- useGeneratedKeys=“true” 表示給主鍵設(shè)置自增長
- keyProperty=“userId” 表示將自增長后的Id賦值給實體類中的userId字段。
- parameterType=“com.xxx.mybatis.User” 這個屬性指向傳遞的參數(shù)實體類
- id=“insertAndGetId” 這個不是固定叫這個的,你可以根據(jù)自己的來
這里提醒下,insert標(biāo)簽中沒有resultType屬性,不要亂加。
實體類中uerId 要有g(shù)etter() and setter(); 方法
我在MySQL數(shù)據(jù)庫中建表時候已經(jīng)設(shè)置了字段自增長,
二、第二種方式
1.引入庫
代碼如下(示例):
<!-- 插入一個商品 --> <insert id="insertProduct" parameterType="domain.model.ProductBean" > <selectKey resultType="java.lang.Long" order="AFTER" keyProperty="productId"> SELECT LAST_INSERT_ID() </selectKey> INSERT INTO t_product(productName,productDesrcible,merchantId)values(#{productName},#{productDesrcible},#{merchantId}); </insert>
小Tips:
< insert >標(biāo)簽中沒有resultType屬性,但是< selectKey >標(biāo)簽是有的。
order=“AFTER” 表示先執(zhí)行插入語句,之后再執(zhí)行查詢語句。
可被設(shè)置為 BEFORE 或 AFTER。
如果設(shè)置為 BEFORE,那么它會首先選擇主鍵,設(shè)置 keyProperty 然后執(zhí)行插入語句。
如果設(shè)置為 AFTER,那么先執(zhí)行插入語句,然后是 selectKey 元素-這和如 Oracle 數(shù)據(jù)庫相似,可以在插入語句中嵌入序列調(diào)用
keyProperty=“userId” 表示將自增長后的Id賦值給實體類中的userId字段。
SELECT LAST_INSERT_ID() 表示MySQL語法中查詢出剛剛插入的記錄自增長Id.
實體類中uerId 要有g(shù)etter() and setter(); 方法
到此這篇關(guān)于mybatis 新增返回id的實現(xiàn)的文章就介紹到這了,更多相關(guān)mybatis 新增返回id內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot?對接飛書多維表格事件回調(diào)監(jiān)聽流程分析
本文介紹了如何通過飛書事件訂閱機制和SpringBoot項目集成,對多維表數(shù)據(jù)的記錄變更進(jìn)行對接的詳細(xì)流程,包括如何創(chuàng)建應(yīng)用、配置參數(shù)、編寫訂閱代碼、訂閱文檔事件以及在SpringBoot工程中集成的步驟,感興趣的朋友跟隨小編一起看看吧2024-12-12Java Swing JRadioButton單選按鈕具體使用
這篇文章主要介紹了Java Swing JRadioButton單選按鈕具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12淺談Spring Boot Web 應(yīng)用性能優(yōu)化
這篇文章主要介紹了淺談Spring Boot Web 應(yīng)用性能優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07springboot2中session超時,退到登錄頁面方式
這篇文章主要介紹了springboot2中session超時,退到登錄頁面方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01MyBatis動態(tài)<if>標(biāo)簽使用避坑指南
這篇文章主要為大家介紹了MyBatis動態(tài)<if>標(biāo)簽使用避坑指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03SpringBoot項目中使用OkHttp獲取IP地址的示例代碼
OkHttp?是一個由?Square?開發(fā)的高效、現(xiàn)代的?HTTP?客戶端庫,用于?Android?和?Java?應(yīng)用程序,它支持?HTTP/2?和?SPDY?等現(xiàn)代網(wǎng)絡(luò)協(xié)議,并提供了多種功能和優(yōu)化,本文給大家介紹了SpringBoot項目中如何獲取IP地址,需要的朋友可以參考下2024-08-08