mybatis insert 返回自增主鍵的實現(xiàn)示例
需求
mybatis 在新增之后怎么也獲取不到自增主鍵,通過不段的摸索原來是姿勢不對,記錄一下希望能幫助下一位采坑的同學
方式一
映射方式
<-- 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 | 實體類中屬性名 |
keyColumn | 數(shù)據(jù)庫主鍵字段名 如果和實體屬性名一樣可以不用寫 |
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 | 實體類中屬性名 |
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 返回自增主鍵的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)mybatis insert 返回自增主鍵內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中jdk1.8和jdk17相互切換實戰(zhàn)步驟
之前做Java項目時一直用的是jdk1.8,現(xiàn)在想下載另一個jdk版本17,并且在之后的使用中可以進行相互切換,下面這篇文章主要給大家介紹了關(guān)于Java中jdk1.8和jdk17相互切換的相關(guān)資料,需要的朋友可以參考下2023-05-05在idea2023中使用SpringBoot整合Lombok全過程及詳細用法
Lombok項目是一個java庫,它可以自動插入到編輯器和構(gòu)建工具中,增強java的性能,本文詳細給大家介紹了在idea2023中使用SpringBoot整合Lombok全過程及詳細用法,需要的朋友可以參考下2023-09-09使用vue3.x+vite+element-ui+vue-router+vuex+axios搭建項目
因為vue3出了一段時間了,element也出了基于vue3.x版本的element-plus,這篇文章就拿他們搭建一個項目,希望能給你帶來幫助2021-08-08SpringBoot配置動態(tài)數(shù)據(jù)源的實戰(zhàn)詳解
Spring對數(shù)據(jù)源的管理類似于策略模式,不懂策略模式也沒關(guān)系,其實就是有一個全局的鍵值對,類型是Map<String, DataSource>,當JDBC操作數(shù)據(jù)庫之時,會根據(jù)不同的key值選擇不同的數(shù)據(jù)源,本文介紹了SpringBoot配置動態(tài)數(shù)據(jù)源的方法,需要的朋友可以參考下2024-08-08SpringBoot配置開發(fā)環(huán)境的詳細步驟(JDK、Maven、IDEA等)
文章介紹了如何配置SpringBoot開發(fā)環(huán)境,包括安裝JDK、Maven和IDEA,并提供了詳細的步驟和配置方法,感興趣的朋友一起看看吧2024-12-12SpringBoot Mybatis批量插入Oracle數(shù)據(jù)庫數(shù)據(jù)
這篇文章主要介紹了SpringBoot Mybatis批量插入Oracle數(shù)據(jù)庫數(shù)據(jù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-08-08