Mybatis[批量]插入返回自增ID

簡(jiǎn)介

最近在業(yè)務(wù)功能中需要獲取mybatis插入的數(shù)據(jù)并且返回插入數(shù)據(jù)的ID奢啥,去執(zhí)行其他的操作绞佩,說來也很簡(jiǎn)單总放,在正常的insert標(biāo)簽里面加入提供的其他屬性即可實(shí)現(xiàn)倘核,故現(xiàn)在抽時(shí)間整理出來陕见,希望能幫助到需要幫助的朋友

環(huán)境

數(shù)據(jù)庫(kù):mysql(table的id字段設(shè)置為自增)
依賴:jar

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.2.7</version>
</dependency>

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.2.2</version>
</dependency>

單條插入返回

DaoMapper接口

Mapper.xml配置

<insert id="insert" useGeneratedKeys="true" keyProperty="releaseDetailsId"   
parameterType="com.xxx.CmsReleaseDetails" >
insert into cms_release_details (RELEASE_DETAILS_ID, RELEASE_DETAILS_CODE
)
values (#{releaseDetailsId,jdbcType=INTEGER}, #{releaseDetailsCode,jdbcType=VARCHAR}
)
  </insert>

總結(jié):即在普通插入中加入useGeneratedKeys和keyProperty屬性即可秘血,在插入完成后直接獲取該插入實(shí)體封裝的ID即可獲取到參數(shù)。

批量插入

批量插入DaoMapper接口
<insert id="insertBatch" useGeneratedKeys="true" 
keyProperty="releaseDetailsId" keyColumn="RELEASE_DETAILS_ID" 
parameterType="java.util.List" >
  insert into cms_release_details ( 
  RELEASE_DETAILS_ID,RELEASE_DETAILS_CODE) values 
  <foreach collection="list" item="item" index="index" separator="," > 
  ( #{item.releaseDetailsId,jdbcType=INTEGER},
#{item.releaseDetailsCode,jdbcType=VARCHAR}) 
      </foreach>
 </insert>

但此時(shí)插入?yún)s報(bào)異常:

nested exception is org.apache.ibatis.binding.BindingException:
 Parameter ' releaseDetailsId ' not found. 
Available parameters are [list, collection]

后查證資料评甜,批量插入返回ID報(bào)錯(cuò)bug在mybatis.3.3.1才被修復(fù)灰粮,故將mybatis升級(jí)為3.3.1,spring-mybatis版本不做處理忍坷,重啟后正常插入且成功返回正確id

總結(jié)

其實(shí)批量插入返回ID和單條插入返回ID沒有什么差別粘舟,首先還是要確定原本不返回值的插入是否成功熔脂,然后再做進(jìn)一步操作,循序漸進(jìn)

參考資料:

https://github.com/mybatis/mybatis-3/pull/324
https://github.com/abel533/mybatis-3/blob/master/src/main/java/org/apache/ibatis/executor/keygen/Jdbc3KeyGenerator.java

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柑肴,一起剝皮案震驚了整個(gè)濱河市霞揉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌晰骑,老刑警劉巖适秩,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異硕舆,居然都是意外死亡秽荞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門岗宣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚂会,“玉大人,你說我怎么就攤上這事耗式⌒沧。” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵刊咳,是天一觀的道長(zhǎng)彪见。 經(jīng)常有香客問我,道長(zhǎng)娱挨,這世上最難降的妖魔是什么余指? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮跷坝,結(jié)果婚禮上酵镜,老公的妹妹穿的比我還像新娘。我一直安慰自己柴钻,他們只是感情好淮韭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贴届,像睡著了一般靠粪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毫蚓,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天占键,我揣著相機(jī)與錄音,去河邊找鬼元潘。 笑死畔乙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翩概。 我是一名探鬼主播牲距,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼袖订,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了嗅虏?” 一聲冷哼從身側(cè)響起洛姑,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎皮服,沒想到半個(gè)月后楞艾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡龄广,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年硫眯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片择同。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡两入,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出敲才,到底是詐尸還是另有隱情裹纳,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布紧武,位于F島的核電站剃氧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阻星。R本人自食惡果不足惜朋鞍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望妥箕。 院中可真熱鬧滥酥,春花似錦、人聲如沸畦幢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呛讲。三九已至禾怠,卻和暖如春返奉,著一層夾襖步出監(jiān)牢的瞬間贝搁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工芽偏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雷逆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓污尉,卻偏偏與公主長(zhǎng)得像膀哲,于是被迫代替她去往敵國(guó)和親往产。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis 某宪? MyBatis 是支持定制化 SQL仿村、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,523評(píng)論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)兴喂,斷路器蔼囊,智...
    卡卡羅2017閱讀 134,672評(píng)論 18 139
  • 從出生開始你就常常睡覺的時(shí)候嘴角帶微笑,我奇怪這么小的孩子就會(huì)笑了衣迷,姥姥說你那是在做故事畏鼓。 兩個(gè)月的時(shí)候,趕上情人...
    毛毛蟲的夏天1213閱讀 527評(píng)論 0 0
  • 某位年輕的校友虛心討教去西安的攻略壶谒,引起了我記一篇流水賬的想法云矫。旅行途中的種種,新奇喜悅悲傷疲憊煩躁汗菜,都是難得的獨(dú)...
    張企鵝閱讀 200評(píng)論 0 0