mybatis insert返回主鍵代碼實例
這篇文章主要介紹了mybatis insert返回主鍵代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
在使用ibatis插入數(shù)據(jù)進數(shù)據(jù)庫的時候,會用到一些sequence的數(shù)據(jù),有些情況下,在插入完成之后還需要將sequence的值返回,然后才能進行下一步的操作。
使用ibatis的selectKey就可以得到sequence的值,同時也會將值返回。不過對于不同的數(shù)據(jù)庫有不同的操作方式。
對于oracle:
<insert id="insertUser" parameterClass="ibatis.User"> <selectKey resultClass="long" keyProperty="id"> select SEQ_USER_ID.nextval as id from dual </selectKey> insert into user (id,name,password) values (#id#,#name#,#password#) </insert>
該句話執(zhí)行完之后,傳進來的參數(shù)User對象DO里的id字段就會被賦值成sequence的值。
對于mysql
<insert id="insertUser" parameterClass="ibatis.User"> insert into user (name,password) values (#name#,#password#) <selectKey resultClass="long" keyProperty="id"> SELECT LAST_INSERT_ID() AS ID </selectKey> </insert>
將selectKey放在insert之后,通過LAST_INSERT_ID() 獲得剛插入的自動增長的id的值。
<insert id="addMetaReport" parameterClass="metaRpo"> <![CDATA[ insert IGNORE into rpo_trackingMeta(trackingMeta_id, trackingMeta_title, company_id, subCompany_id, meta_type, delegation_at, report_cycle, start_at, end_at, matched_num_new, matched_num_takeoff, matched_num_total, created_at, created_by, updated_at, updated_by) select #trackingMetaId# , #metaTitle# , #companyId# , #subCompanyId# , #metaType# , #delegationAt# , #reportCycle# , #startAt# , #endAt# , sum(case when created_at >= #startAt# and created_at < #endAt# then 1 else 0 end) , 0 , count(*) , now() , #createdBy# , now() , #updatedBy# from matchedPage where task_id = #orderId# and verification = 'mediadna'; ]]> <selectKey keyProperty="id" resultClass="int"> SELECT IF(row_count() > 0, last_insert_id(), 0) AS id FROM dual </selectKey> </insert>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中四種訪問控制權(quán)限解析(private、default、protected、public)
java當(dāng)中有4種訪問修飾限定符privat、default(默認訪問權(quán)限),protected以及public,本文就詳細的介紹一下這四種方法的具體使用,感興趣的可以了解一下2023-05-05Java基于jeeplus vue實現(xiàn)簡單工作流過程圖解
這篇文章主要介紹了Java基于jeeplus vue實現(xiàn)簡單工作流過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04SpringBoot中使用Jsoup爬取網(wǎng)站數(shù)據(jù)的方法
這篇文章主要介紹了SpringBoot中使用Jsoup爬取網(wǎng)站數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06MyBatis-Plus標(biāo)簽@TableField之fill自動填充方式
這篇文章主要介紹了MyBatis-Plus標(biāo)簽@TableField之fill自動填充方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06java中靜態(tài)代碼塊與構(gòu)造方法的執(zhí)行順序判斷
對靜態(tài)代碼塊以及構(gòu)造函數(shù)的執(zhí)行先后順序,一直很迷惑,直到最近看到一段代碼,發(fā)現(xiàn)終于弄懂了,所以這篇文章主要給大家介紹了關(guān)于如何判斷java中靜態(tài)代碼塊與構(gòu)造方法的執(zhí)行順序的相關(guān)資料,需要的朋友可以參考下。2017-12-12java、springboot?接口導(dǎo)出txt方式
這篇文章主要介紹了java、springboot?接口導(dǎo)出txt方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01深入剖析java中String、StringBuffer、StringBuilder的區(qū)別
下面小編就為大家?guī)硪黄钊肫饰鰆ava中String、StringBuffer、StringBuilder的區(qū)別。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05