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

mybatis-plus之如何根據(jù)數(shù)據(jù)庫(kù)主鍵定義字段類型

 更新時(shí)間:2023年07月15日 09:20:38   作者:BinaryBoss  
這篇文章主要介紹了mybatis-plus之如何根據(jù)數(shù)據(jù)庫(kù)主鍵定義字段類型問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis-plus根據(jù)數(shù)據(jù)庫(kù)主鍵定義字段類型

查看mybatis-plus源代碼IdType

package com.baomidou.mybatisplus.annotation;
public enum IdType {
? AUTO(0), ? ? ? ? ? ?//數(shù)據(jù)庫(kù)自增 依賴數(shù)據(jù)庫(kù)
? NONE(1), ? ? ? ? ? ?//表示該類型未甚至主鍵類型 (如果沒有主鍵策略)默認(rèn)根據(jù)雪花算法生成
? INPUT(2), ? ? ? ? ? //用戶輸入ID(該類型可以通過自己注冊(cè)填充插件進(jìn)行填充)
? //下面這三種類型,只有當(dāng)插入對(duì)象id為空時(shí) 才會(huì)自動(dòng)填充
? ID_WORKER(3), ? ? ? //全局唯一(idWorker)數(shù)值類型
? UUID(4), ? ? ? ? ? ?//全局唯一(UUID)
? ID_WORKER_STR(5); ? //全局唯一(idWorker的字符串表示)
? private int key;
? private IdType(int key) {
? ? this.key = key;
? }
? public int getKey() {
? ? return this.key;
? }
}

在實(shí)體類中ID屬性字段加注解

@TableId(type = IdType.AUTO) 主鍵自增 數(shù)據(jù)庫(kù)中需要設(shè)置主鍵自增
private Long id;
@TableId(type = IdType.NONE) 默認(rèn) 跟隨全局策略走
private Long id;
@TableId(type = IdType.UUID) UUID類型主鍵
private Long id;
@TableId(type = IdType.ID_WORKER) 數(shù)值類型 ?數(shù)據(jù)庫(kù)中也必須是數(shù)值類型 否則會(huì)報(bào)錯(cuò)
private Long id;
@TableId(type = IdType.ID_WORKER_STR) 字符串類型 ? 數(shù)據(jù)庫(kù)也要保證一樣字符類型
private Long id;
@TableId(type = IdType.INPUT) 用戶自定義了 ?數(shù)據(jù)類型和數(shù)據(jù)庫(kù)保持一致就行
private Long id;

全局主鍵策略實(shí)現(xiàn)

在application.yml文件中進(jìn)行全局設(shè)置

mybatis-plus:
? mapper-locations:
? ? - com/mp/mapper/*
? global-config:
? ? db-config:
? ? ? id-type: uuid/none/input/id_worker/id_worker_str/auto ? 表示全局主鍵都采用該策略(如果全局策略和局部策略都有設(shè)置,局部策略優(yōu)先級(jí)高)

mybatis-plus操作數(shù)據(jù)庫(kù)自增主鍵和時(shí)間字段的設(shè)置

1. 主鍵ID設(shè)置@Table(type=IdType.AUTO)后報(bào)錯(cuò),或者數(shù)據(jù)庫(kù)任然保持19位默認(rèn)雪花加密

  • 沒設(shè)置數(shù)據(jù)庫(kù)主鍵ID為自增。
  • 遇到任然雪花加密的措施,網(wǎng)上說法是數(shù)據(jù)庫(kù)自增關(guān)了再開,試了沒用,直接刪表重建發(fā)現(xiàn)有用。

2.給enetity字段的時(shí)間設(shè)置自動(dòng)填充

在給類型添加標(biāo)簽-

@TableField(fill = FieldFill.INSERT)和 @TableField(fill = FieldFill.INSERT_UPDATE)

重寫標(biāo)簽自定義實(shí)現(xiàn)類 MyMetaObjectHandler

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    private static final ZoneId ZONE_UTC = ZoneId.of("UTC");
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

3. 樂觀鎖問題

樂觀鎖十分樂觀,總是認(rèn)為不會(huì)出現(xiàn)問題。無(wú)論干什么都不會(huì)去上鎖。如果出現(xiàn)問題就再測(cè)試加鎖處理。

悲觀鎖,覺得總會(huì)出問題,所以干什么都會(huì)先上鎖。

樂觀鎖實(shí)現(xiàn)方式:

  • 取出記錄時(shí),獲取當(dāng)前 version
  • 更新時(shí),帶上這個(gè) version
  • 執(zhí)行更新時(shí), set version = newVersion where version = oldVersion
  • 如果 version 不對(duì),就更新失敗

注意版本更新,改mbp版本為3.4.2即可

4.數(shù)據(jù)庫(kù)設(shè)置邏輯刪除時(shí),注意

字段名不要叫delete,這東西在數(shù)據(jù)庫(kù)里是個(gè)關(guān)鍵字,救命。

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

  • Java之HashMap.values()轉(zhuǎn)List時(shí)的錯(cuò)誤和正確演示

    Java之HashMap.values()轉(zhuǎn)List時(shí)的錯(cuò)誤和正確演示

    這篇文章主要介紹了Java之HashMap.values()轉(zhuǎn)List時(shí)的錯(cuò)誤和正確演示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • mysql+spring+mybatis實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離的代碼配置

    mysql+spring+mybatis實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離的代碼配置

    今天小編就為大家分享一篇關(guān)于mysql+spring+mybatis實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離的代碼配置,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 詳解MyBatis增刪改查SQL案例實(shí)戰(zhàn)

    詳解MyBatis增刪改查SQL案例實(shí)戰(zhàn)

    本文通過具體的SQL案例,詳細(xì)介紹了MyBatis的增刪改查操作,通過靈活的Mapper接口和XML配置,MyBatis能夠?qū)崿F(xiàn)高效的數(shù)據(jù)操作,同時(shí)支持動(dòng)態(tài)SQL和批量操作,極大地提升了開發(fā)效率,感興趣的可以了解一下
    2026-03-03
  • 異常try?catch的常見四類方式(案例代碼)

    異常try?catch的常見四類方式(案例代碼)

    這篇文章主要介紹了異常try?catch的常見四類方式,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • JavaEE在線人數(shù)管理系統(tǒng)

    JavaEE在線人數(shù)管理系統(tǒng)

    這篇文章主要為大家分享了JavaEE在線人數(shù)管理系統(tǒng),顯示在線人數(shù)、在線人詳細(xì)信息、管理員踢人等功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Spring Boot整合QueryDSL的實(shí)現(xiàn)示例

    Spring Boot整合QueryDSL的實(shí)現(xiàn)示例

    這篇文章主要介紹了Spring Boot整合QueryDSL的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java中Set集合轉(zhuǎn)為L(zhǎng)ist集合常見的兩種方式

    Java中Set集合轉(zhuǎn)為L(zhǎng)ist集合常見的兩種方式

    List是Java中比較常用的集合類,指一系列存儲(chǔ)數(shù)據(jù)的接口和類,可以解決復(fù)雜的數(shù)據(jù)存儲(chǔ)問題,這篇文章主要給大家介紹了關(guān)于Java中Set集合轉(zhuǎn)為L(zhǎng)ist集合常見的兩種方式,需要的朋友可以參考下
    2023-12-12
  • java實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送文件

    java實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送文件

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)客戶端向服務(wù)器發(fā)送文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • JAVA正則表達(dá)式校驗(yàn)qq號(hào)碼的方法

    JAVA正則表達(dá)式校驗(yàn)qq號(hào)碼的方法

    Java作為一種開發(fā)語(yǔ)言,有許多值得推薦的地方,但是它一直以來(lái)沒有自帶對(duì)正則表達(dá)式的支持。下面小編給大家?guī)?lái)了JAVA正則表達(dá)式校驗(yàn)qq號(hào)碼的方法,需要的朋友參考下吧
    2018-04-04
  • 使用Java Stream將集合轉(zhuǎn)換為一對(duì)一Map的方法詳解

    使用Java Stream將集合轉(zhuǎn)換為一對(duì)一Map的方法詳解

    在日常的開發(fā)工作中,我們經(jīng)常使用到Java Stream,特別是Stream API中提供的Collectors.toList()收集器,但有些場(chǎng)景下,我們需要將集合轉(zhuǎn)換為Map,所以本文就給大家介紹了如何使用Java Stream將集合轉(zhuǎn)換為一對(duì)一Map,需要的朋友可以參考下
    2025-12-12

最新評(píng)論

扎兰屯市| 琼海市| 松江区| 民丰县| 尖扎县| 永胜县| 海淀区| 惠州市| 濉溪县| 崇明县| 成都市| 府谷县| 南充市| 二连浩特市| 泸州市| 临潭县| 肥东县| 庆阳市| 松阳县| 磐石市| 渝北区| 论坛| 河源市| 崇礼县| 油尖旺区| 卢氏县| 宜良县| 永昌县| 迁安市| 忻城县| 贡觉县| 丘北县| 建瓯市| 凤凰县| 黄梅县| 自贡市| 正镶白旗| 青铜峡市| 密云县| 三门峡市| 德格县|