mybatis insert 返回自增主鍵的實(shí)現(xiàn)示例
需求
mybatis 在新增之后怎么也獲取不到自增主鍵,通過不段的摸索原來是姿勢不對,記錄一下希望能幫助下一位采坑的同學(xué)
方式一
映射方式
<-- xml 映射的方式 --> <insert id="insert" parameterType="com.kebi.User" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> INSERT INTO user ( username, password ) VALUES ( #{username}, #{password} ) </insert>
屬性 | 描述 |
---|---|
useGeneratedKeys | 為 true 則返回主鍵的值 |
keyProperty | 實(shí)體類中屬性名 |
keyColumn | 數(shù)據(jù)庫主鍵字段名 如果和實(shí)體屬性名一樣可以不用寫 |
private UsertMapper userMapper; User user = new User(); user.setUserName("name"); user.setPassWord("123") userMapper.insert(user); System.out.println("獲取自增主鍵:"+ user.getId());
方式二
selectKey 的方式
<-- xml 映射的方式 --> <insert id="INSERT" parameterType="com.kebi.User"> <selectKey resultType="int" order="AFTER" keyProperty="id" keyColumn="id"> SELECT LAST_INSERT_ID() </selectKey> INSERT INTO users ( username, password ) VALUES ( #{username}, #{password} ) </insert>
屬性 | 描述 |
---|---|
resultType | 結(jié)果類型 |
keyProperty | 實(shí)體類中屬性名 |
keyColumn | 數(shù)據(jù)庫主鍵字段名 |
order | 這可以被設(shè)置為 BEFORE 或 AFTER。如果設(shè)置為 BEFORE,那么它會首先選擇主鍵,設(shè)置 keyProperty 然后執(zhí)行插入語句。如果設(shè)置為 AFTER,那么先執(zhí)行插入語句,然后是 selectKey 元素 - 這和像 Oracle 的數(shù)據(jù)庫相似,在插入語句內(nèi)部可能有嵌入索引調(diào)用。 |
statementType | MyBatis 支持 STATEMENT、PREPARED 和 CALLABLE 語句的映射類型,分別代表 PreparedStatement 和 CallableStatement 類型 |
到此這篇關(guān)于mybatis insert 返回自增主鍵的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)mybatis insert 返回自增主鍵內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中jdk1.8和jdk17相互切換實(shí)戰(zhàn)步驟
之前做Java項(xiàng)目時一直用的是jdk1.8,現(xiàn)在想下載另一個jdk版本17,并且在之后的使用中可以進(jìn)行相互切換,下面這篇文章主要給大家介紹了關(guān)于Java中jdk1.8和jdk17相互切換的相關(guān)資料,需要的朋友可以參考下2023-05-05在idea2023中使用SpringBoot整合Lombok全過程及詳細(xì)用法
Lombok項(xiàng)目是一個java庫,它可以自動插入到編輯器和構(gòu)建工具中,增強(qiáng)java的性能,本文詳細(xì)給大家介紹了在idea2023中使用SpringBoot整合Lombok全過程及詳細(xì)用法,需要的朋友可以參考下2023-09-09使用vue3.x+vite+element-ui+vue-router+vuex+axios搭建項(xiàng)目
因?yàn)関ue3出了一段時間了,element也出了基于vue3.x版本的element-plus,這篇文章就拿他們搭建一個項(xiàng)目,希望能給你帶來幫助2021-08-08SpringBoot配置動態(tài)數(shù)據(jù)源的實(shí)戰(zhàn)詳解
Spring對數(shù)據(jù)源的管理類似于策略模式,不懂策略模式也沒關(guān)系,其實(shí)就是有一個全局的鍵值對,類型是Map<String, DataSource>,當(dāng)JDBC操作數(shù)據(jù)庫之時,會根據(jù)不同的key值選擇不同的數(shù)據(jù)源,本文介紹了SpringBoot配置動態(tài)數(shù)據(jù)源的方法,需要的朋友可以參考下2024-08-08SpringBoot配置開發(fā)環(huán)境的詳細(xì)步驟(JDK、Maven、IDEA等)
文章介紹了如何配置SpringBoot開發(fā)環(huán)境,包括安裝JDK、Maven和IDEA,并提供了詳細(xì)的步驟和配置方法,感興趣的朋友一起看看吧2024-12-12java設(shè)計(jì)模式-代理模式(實(shí)例講解)
下面小編就為大家?guī)硪黄猨ava設(shè)計(jì)模式-代理模式(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09Spring框架基于xml實(shí)現(xiàn)自動裝配流程詳解
自動裝配就是指?Spring?容器在不使用?<constructor-arg>?和<property>?標(biāo)簽的情況下,可以自動裝配(autowire)相互協(xié)作的?Bean?之間的關(guān)聯(lián)關(guān)系,將一個?Bean?注入其他?Bean?的?Property?中2022-11-11SpringBoot Mybatis批量插入Oracle數(shù)據(jù)庫數(shù)據(jù)
這篇文章主要介紹了SpringBoot Mybatis批量插入Oracle數(shù)據(jù)庫數(shù)據(jù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08