最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis?plus新增(insert)數(shù)據(jù)獲取主鍵id的問題

 更新時間:2023年03月06日 08:48:46   作者:Rookie_cc  
這篇文章主要介紹了mybatis?plus新增(insert)數(shù)據(jù)獲取主鍵id的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis plus新增(insert)數(shù)據(jù)獲取主鍵id

在我們執(zhí)行insert操作的時候,往往會需要拿到新插入數(shù)據(jù)的主鍵id做下一步操作。

例:

//新增銀行卡
BankCard bankCard = new BankCard();
bankCard.setBankCardRealName(bankCardRequest.getRealName());
bankCard.setBankCardNum(bankCardRequest.getBankCardNum());
bankCard.setBankName(bankCardRequest.getBankName());
int index = bankCardMapper.insert(bankCard);

這里insert之后返回的index實際是你增加的數(shù)據(jù)列數(shù),并不是主鍵id。

要想獲取主鍵id,只需要在insert之后直接get該對象的主鍵id即可

例:

//新增銀行卡
BankCard bankCard = new BankCard();
bankCard.setBankCardRealName(bankCardRequest.getRealName());
bankCard.setBankCardNum(bankCardRequest.getBankCardNum());
bankCard.setBankName(bankCardRequest.getBankName());
bankCardMapper.insert(bankCard);
Long id = bankCard.getId();

mybatis plus坑之insert方法

有天早上我的一個同事,突然跑來告訴我。我們某張表的自增ID變得很大。類似1173776258468638722 這種。這個當然是不能接受的啊。

著手解決

然后就開始找問題的原因,一開始我想的是數(shù)據(jù)庫上的問題,我刪掉不合理的數(shù)據(jù),

alter table *** AUTO_INCREMENT=20,修改自增ID從20開始。手動插入數(shù)據(jù),居然OK。

那就說明,可能是我們代碼insert數(shù)據(jù)的時候存在的問題。我找到數(shù)據(jù)庫訪問層的insert語句處,發(fā)現(xiàn)使用的是mybatis-plus,網(wǎng)上查了一下關于這塊的東西,發(fā)現(xiàn)insert方法在配置的時候,可以指定自增ID的方式。

源碼中定義有以下幾種:

public enum IdType {
? ? AUTO(0, "數(shù)據(jù)庫ID自增"),
? ? INPUT(1, "用戶輸入ID"),
? ? ID_WORKER(2, "全局唯一ID"),
? ? UUID(3, "全局唯一ID"),
? ? NONE(4, "該類型為未設置主鍵類型"),
? ? ID_WORKER_STR(5, "字符串全局唯一ID");

然后我就果斷手動配置了一下,

@TableId(type = IdType.AUTO)
private Long userId;

重啟測試,OK。

也是很奇怪為什么之前的那部分數(shù)據(jù)的自增ID都是沒問題的,突然出現(xiàn)這個,也是很困惑

出現(xiàn)這個問題的原因,還是因為自己技術不熟練啦~~

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring使用Setter完成依賴注入方式

    Spring使用Setter完成依賴注入方式

    這篇文章主要介紹了Spring使用Setter完成依賴注入方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Mybatis-plus使用注解 @TableField(exist = false)

    Mybatis-plus使用注解 @TableField(exist = false)

    這篇文章主要介紹了Mybatis-plus使用注解 @TableField(exist = false),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Spring定時任務輪詢本地數(shù)據(jù)庫實現(xiàn)過程解析

    Spring定時任務輪詢本地數(shù)據(jù)庫實現(xiàn)過程解析

    這篇文章主要介紹了Spring定時任務輪詢本地數(shù)據(jù)庫實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • java如何使用ftp下載遠程服務器文件

    java如何使用ftp下載遠程服務器文件

    Java通過FTP下載文件主要有兩種方式:第一種是直接在連接中包含賬號和密碼進行遠程下載;第二種是登錄后使用賬號和密碼進行下載,這些方法適用于需要從遠程服務器獲取文件的場景
    2024-11-11
  • SpringBoot實現(xiàn)自定義啟動器的示例詳解

    SpringBoot實現(xiàn)自定義啟動器的示例詳解

    雖然Spring官方給我們提供了很多的啟動器供我們使用,但有時候我們也會遇到某些特殊場景,這些啟動器滿足不了。這個時候就需要自定義一個啟動器供我們使用,本文為大家介紹了SpringBoot實現(xiàn)自定義啟動器的方法,希望對大家有所幫助
    2023-01-01
  • SpringBoot中實現(xiàn)@Scheduled動態(tài)定時任務

    SpringBoot中實現(xiàn)@Scheduled動態(tài)定時任務

    SpringBoot中的@Scheduled注解為定時任務提供了一種很簡單的實現(xiàn),本文主要介紹了SpringBoot中實現(xiàn)@Scheduled動態(tài)定時任務,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 熟練掌握Java8新特性之Stream API的全面應用

    熟練掌握Java8新特性之Stream API的全面應用

    Stream是Java8的一大亮點,是對容器對象功能的增強,它專注于對容器對象進行各種非常便利、高效的 聚合操作(aggregate operation)或者大批量數(shù)據(jù)操作。Stream API借助于同樣新出現(xiàn)的Lambda表達式,極大的提高編程效率和程序可讀性,感興趣的朋友快來看看吧
    2021-11-11
  • Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別

    Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別

    這篇文章主要介紹了Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別,@Autowired 可以單獨使用,如果單獨使用,它將按類型裝配,因此,如果在容器中聲明了多個相同類型的bean,則會出現(xiàn)問題,因為 @Autowired 不知道要使用哪個bean來注入,需要的朋友可以參考下
    2023-11-11
  • java正則表達式提取數(shù)字的方法實例

    java正則表達式提取數(shù)字的方法實例

    這篇文章主要介紹了java正則表達式提取數(shù)字的方法,還有去除字符串數(shù)字的方法,大家參考使用吧
    2013-12-12
  • javaweb頁面附件、圖片下載及打開(實現(xiàn)方法)

    javaweb頁面附件、圖片下載及打開(實現(xiàn)方法)

    下面小編就為大家?guī)硪黄猨avaweb頁面附件、圖片下載及打開(實現(xiàn)方法)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論

肃宁县| 商丘市| 开化县| 昂仁县| 东乌珠穆沁旗| 安远县| 古田县| 滁州市| 逊克县| 永安市| 福州市| 泰州市| 盘山县| 彩票| 固原市| 普格县| 通州市| 朝阳区| 花莲市| 洛阳市| 芮城县| 北碚区| 霞浦县| 墨脱县| 五常市| 贞丰县| 灵璧县| 三都| 合江县| 沙雅县| 海林市| 宾川县| 平湖市| 琼海市| 额敏县| 肇州县| 会同县| 新营市| 青冈县| 宁德市| 西充县|