Mybatis示例之SelectKey的應(yīng)用
SelectKey在Mybatis中是為了解決Insert數(shù)據(jù)時(shí)不支持主鍵自動(dòng)生成的問(wèn)題,他可以很隨意的設(shè)置生成主鍵的方式。
不管SelectKey有多好,盡量不要遇到這種情況吧,畢竟很麻煩。

SelectKey需要注意order屬性,像Mysql一類(lèi)支持自動(dòng)增長(zhǎng)類(lèi)型的數(shù)據(jù)庫(kù)中,order需要設(shè)置為after才會(huì)取到正確的值。
像Oracle這樣取序列的情況,需要設(shè)置為before,否則會(huì)報(bào)錯(cuò)。
下面是一個(gè)xml和注解的例子,SelectKey很簡(jiǎn)單,兩個(gè)例子就夠了:
<insert id="insert" parameterType="map">
insert into table1 (name) values (#{name})
<selectKey resultType="java.lang.Integer" keyProperty="id">
CALL IDENTITY()
</selectKey>
</insert>
上面xml的傳入?yún)?shù)是map,selectKey會(huì)將結(jié)果放到入?yún)?shù)map中。用POJO的情況一樣,但是有一點(diǎn)需要注意的是,keyProperty對(duì)應(yīng)的字段在POJO中必須有相應(yīng)的setter方法,setter的參數(shù)類(lèi)型還要一致,否則會(huì)報(bào)錯(cuò)。
@Insert("insert into table2 (name) values(#{name})")
@SelectKey(statement="call identity()", keyProperty="nameId", before=false, resultType=int.class)
int insertTable2(Name name);
上面是注解的形式。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- MyBatis insert語(yǔ)句返回主鍵和selectKey標(biāo)簽方式
- mybatis?selectKey賦值未生效的原因分析
- Mybatis3中方法返回生成的主鍵:XML,@SelectKey,@Options詳解
- mybatis?獲取更新(update)記錄的id之<selectKey>用法說(shuō)明
- mybatis的selectKey作用詳解
- Mybatis?selectKey 如何返回新增用戶(hù)的id值
- MyBatis如何使用selectKey返回主鍵的值
- Mybatis插入時(shí)返回自增主鍵方式(selectKey和useGeneratedKeys)
- Mybatis @SelectKey用法解讀
- MyBatis中selectKey標(biāo)簽及主鍵回填實(shí)現(xiàn)
相關(guān)文章
java-collection中的null,isEmpty用法
這篇文章主要介紹了java-collection中的null,isEmpty用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Springboot訪(fǎng)問(wèn)html頁(yè)面的教程詳解
這篇文章主要介紹了Springboot訪(fǎng)問(wèn)html頁(yè)面的教程,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-03-03
Mybatis動(dòng)態(tài)SQL foreach標(biāo)簽用法實(shí)例
這篇文章主要介紹了Mybatis動(dòng)態(tài)SQL foreach標(biāo)簽用法實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Spring Boot中如何使用Convert接口實(shí)現(xiàn)類(lèi)型轉(zhuǎn)換器
這篇文章主要介紹了Spring Boot中使用Convert接口實(shí)現(xiàn)類(lèi)型轉(zhuǎn)換器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
java中MultipartFile和File最簡(jiǎn)單的互相轉(zhuǎn)換示例
這篇文章主要給大家介紹了關(guān)于java中MultipartFile和File最簡(jiǎn)單的互相轉(zhuǎn)換的相關(guān)資料,MultipartFile和File都是Java中用于處理文件上傳的類(lèi),MultipartFile用于處理上傳的文件,File用于處理本地磁盤(pán)上的文件,需要的朋友可以參考下2023-09-09
關(guān)于Spring?Cloud實(shí)現(xiàn)日志管理模塊
這篇文章主要介紹了關(guān)于Spring?Cloud實(shí)現(xiàn)日志管理模塊問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
解決springcloud啟動(dòng)時(shí)報(bào)錯(cuò)Connection refused:connect問(wèn)題
這篇文章主要介紹了解決springcloud啟動(dòng)時(shí)報(bào)錯(cuò)Connection refused:connect問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
mybatis plus 自動(dòng)轉(zhuǎn)駝峰配置小結(jié)
SpringBoot提供兩種配置Mybatis的方式,第一種是通過(guò)yml或application.properties文件開(kāi)啟配置,第二種是使用自定義配置類(lèi),通過(guò)給容器添加一個(gè)ConfigurationCustomizer來(lái)實(shí)現(xiàn)更靈活的配置,這兩種方法可以根據(jù)項(xiàng)目需求和個(gè)人喜好選擇使用2024-10-10

