mybatis insert 返回自增主鍵的實現(xiàn)示例
更新時間:2024年06月27日 10:20:56 作者:薄荷街的兔比先生
mybatis 在新增之后怎么也獲取不到自增主鍵,本文主要介紹了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)文章
Spring Data JPA帶條件分頁查詢實現(xiàn)原理
這篇文章主要介紹了Spring Data JPA帶條件分頁查詢實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-05-05
maven tomcat plugin實現(xiàn)熱部署
這篇文章主要介紹了maven tomcat plugin實現(xiàn)熱部署,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
Spring中網(wǎng)絡請求客戶端WebClient的使用詳解
作為替代,Spring 官方已在 Spring 5 中引入了 WebClient 作為非阻塞式 Reactive HTTP 客戶端,本文將通過樣例演示如何使用 WebClient,希望對大家有所幫助2024-04-04

