mybatis insert 返回自增主鍵的實現(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 | 實體類中屬性名 |
| 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)文章
如何使用Spring AOP優(yōu)雅實現(xiàn)橫切邏輯復(fù)用
本文詳細(xì)介紹了Spring AOP的核心概念、在Spring Boot中的使用方式、實現(xiàn)原理及多切面執(zhí)行順序,AOP作為面向?qū)ο缶幊痰难a充,通過橫切邏輯的分離,能有效簡化日志、事務(wù)、權(quán)限等功能的開發(fā),提升代碼的可維護性和復(fù)用性,感興趣的朋友跟隨小編一起看看吧2025-12-12
SpringBoot線上環(huán)境徹底關(guān)閉Swagger-UI的方式
這篇文章主要給大家介紹了SpringBoot線上環(huán)境徹底關(guān)閉Swagger-UI的方式,文中給出了詳細(xì)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12
Mybatis?MappedStatement類核心原理詳解
這篇文章主要介紹了Mybatis?MappedStatement類,mybatis的mapper文件最終會被解析器,解析成MappedStatement,其中insert|update|delete|select每一個標(biāo)簽分別對應(yīng)一個MappedStatement2022-11-11
Spring Boot中Redis序列化優(yōu)化配置詳解
在使用Spring Boot集成Redis時,序列化方式的選擇直接影響數(shù)據(jù)存儲的效率和系統(tǒng)兼容性,默認(rèn)的JDK序列化存在可讀性差、存儲空間大等問題,本文將深入探討如何優(yōu)化Redis序列化配置,感興趣的朋友跟隨小編一起看看吧2025-05-05
java如何將Object數(shù)組轉(zhuǎn)換為指定類型數(shù)組
這篇文章主要介紹了java如何將Object數(shù)組轉(zhuǎn)換為指定類型數(shù)組,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08

