mybatis insert返回主鍵代碼實(shí)例
這篇文章主要介紹了mybatis insert返回主鍵代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
在使用ibatis插入數(shù)據(jù)進(jìn)數(shù)據(jù)庫(kù)的時(shí)候,會(huì)用到一些sequence的數(shù)據(jù),有些情況下,在插入完成之后還需要將sequence的值返回,然后才能進(jìn)行下一步的操作。
使用ibatis的selectKey就可以得到sequence的值,同時(shí)也會(huì)將值返回。不過(guò)對(duì)于不同的數(shù)據(jù)庫(kù)有不同的操作方式。
對(duì)于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í)行完之后,傳進(jìn)來(lái)的參數(shù)User對(duì)象DO里的id字段就會(huì)被賦值成sequence的值。
對(duì)于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之后,通過(guò)LAST_INSERT_ID() 獲得剛插入的自動(dòng)增長(zhǎng)的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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)多任務(wù)執(zhí)行助手
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多任務(wù)執(zhí)行助手,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
ElasticSearch如何設(shè)置某個(gè)字段不分詞淺析
最近在學(xué)習(xí)ElasticSearch官方文檔過(guò)程中發(fā)現(xiàn)的某個(gè)問(wèn)題,記錄一下 希望能幫助到后面的朋友,下面這篇文章主要給大家介紹了關(guān)于ElasticSearch如何設(shè)置某個(gè)字段不分詞的相關(guān)資料,需要的朋友可以參考下2022-04-04
springboot 使用yml配置文件自定義屬性的操作代碼
在SpringBoot中yml/yaml文件可以自定義一些屬性,以供注入給自定義bean對(duì)象的屬性,主要通過(guò)空格和層次來(lái)實(shí)現(xiàn),類似于python代碼,本文通過(guò)實(shí)例代碼給大家介紹springboot 使用yml配置文件自定義屬性,感興趣的朋友跟隨小編一起看看吧2024-03-03
SpringBoot設(shè)置接口超時(shí)時(shí)間的方法
這篇文章主要介紹了SpringBoot設(shè)置接口超時(shí)時(shí)間的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
springCloud集成nacos啟動(dòng)時(shí)報(bào)錯(cuò)原因排查
這篇文章主要介紹了springCloud集成nacos啟動(dòng)時(shí)報(bào)錯(cuò)原因排查,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04

