欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

查看mybatis-plus源代碼IdType

package com.baomidou.mybatisplus.annotation;
public enum IdType {
? AUTO(0), ? ? ? ? ? ?//數(shù)據(jù)庫(kù)自增 依賴數(shù)據(jù)庫(kù)
? NONE(1), ? ? ? ? ? ?//表示該類(lèi)型未甚至主鍵類(lèi)型 (如果沒(méi)有主鍵策略)默認(rèn)根據(jù)雪花算法生成
? INPUT(2), ? ? ? ? ? //用戶輸入ID(該類(lèi)型可以通過(guò)自己注冊(cè)填充插件進(jìn)行填充)
? //下面這三種類(lèi)型,只有當(dāng)插入對(duì)象id為空時(shí) 才會(huì)自動(dòng)填充
? ID_WORKER(3), ? ? ? //全局唯一(idWorker)數(shù)值類(lèi)型
? 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í)體類(lèi)中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類(lèi)型主鍵
private Long id;
@TableId(type = IdType.ID_WORKER) 數(shù)值類(lèi)型 ?數(shù)據(jù)庫(kù)中也必須是數(shù)值類(lèi)型 否則會(huì)報(bào)錯(cuò)
private Long id;
@TableId(type = IdType.ID_WORKER_STR) 字符串類(lèi)型 ? 數(shù)據(jù)庫(kù)也要保證一樣字符類(lèi)型
private Long id;
@TableId(type = IdType.INPUT) 用戶自定義了 ?數(shù)據(jù)類(lèi)型和數(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)雪花加密

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

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

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

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

重寫(xiě)標(biāo)簽自定義實(shí)現(xiàn)類(lèi) 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. 樂(lè)觀鎖問(wèn)題

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

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

樂(lè)觀鎖實(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)文章

  • SpringBoot2整合Ehcache組件實(shí)現(xiàn)輕量級(jí)緩存管理

    SpringBoot2整合Ehcache組件實(shí)現(xiàn)輕量級(jí)緩存管理

    EhCache是一個(gè)純Java的進(jìn)程內(nèi)緩存框架,具有快速、上手簡(jiǎn)單等特點(diǎn),是Hibernate中默認(rèn)的緩存提供方。本文講述下SpringBoot2 整合Ehcache組件的步驟
    2021-06-06
  • Java實(shí)現(xiàn)單鏈表的各種操作

    Java實(shí)現(xiàn)單鏈表的各種操作

    本文主要對(duì)Java實(shí)現(xiàn)單鏈表的各種操作進(jìn)行詳細(xì)介紹。具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧
    2016-12-12
  • Spring整合Mybatis實(shí)操分享

    Spring整合Mybatis實(shí)操分享

    這篇文章主要介紹了Spring整合Mybatis實(shí)操分享,文章首先通過(guò)介紹Mybatis的工作原理展開(kāi)Spring整合Mybatis的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-04-04
  • SpringCloud?Eureka服務(wù)注冊(cè)中心應(yīng)用入門(mén)詳解

    SpringCloud?Eureka服務(wù)注冊(cè)中心應(yīng)用入門(mén)詳解

    這篇文章主要介紹了Spring?Cloud?Eureka服務(wù)注冊(cè)中心入門(mén)流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Elasticsearch term 查詢之精確值搜索功能實(shí)現(xiàn)

    Elasticsearch term 查詢之精確值搜索功能實(shí)現(xiàn)

    term查詢是Elasticsearch中用于精確值搜索的一種基本方式,通過(guò)了解 term 查詢的工作原理和使用方法,你可以更好地利用 Elasticsearch 進(jìn)行結(jié)構(gòu)化數(shù)據(jù)的搜索和分析,本文將詳細(xì)介紹 term 查詢的工作原理、使用場(chǎng)景以及如何在 Elasticsearch 中應(yīng)用它,感興趣的朋友一起看看吧
    2024-06-06
  • Java刪除ArrayList中的重復(fù)元素的兩種方法

    Java刪除ArrayList中的重復(fù)元素的兩種方法

    在Java編程中,ArrayList是一種常用的集合類(lèi),它允許我們存儲(chǔ)一組元素,在某些情況下,我們可能需要移除其中重復(fù)的元素,只保留唯一的元素,下面介紹兩種常見(jiàn)的刪除ArrayList中重復(fù)元素的方法,需要的朋友可以參考下
    2024-12-12
  • Java2 JDK安裝和配置教程

    Java2 JDK安裝和配置教程

    這篇文章主要為大家詳細(xì)介紹了Java2 JDK安裝和配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • spring event 事件異步處理方式(發(fā)布,監(jiān)聽(tīng),異步處理)

    spring event 事件異步處理方式(發(fā)布,監(jiān)聽(tīng),異步處理)

    這篇文章主要介紹了spring event 事件異步處理方式(發(fā)布,監(jiān)聽(tīng),異步處理),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 關(guān)于重寫(xiě)equals()方法和hashCode()方法及其簡(jiǎn)單的應(yīng)用

    關(guān)于重寫(xiě)equals()方法和hashCode()方法及其簡(jiǎn)單的應(yīng)用

    這篇文章主要介紹了關(guān)于重寫(xiě)equals()方法和hashCode()方法及其簡(jiǎn)單的應(yīng)用,網(wǎng)上的知識(shí)有些可能是錯(cuò)誤的,關(guān)于?equals()?方法的理解,大家討論不一樣,需要的朋友可以參考下
    2023-04-04
  • 理解zookeeper選舉機(jī)制

    理解zookeeper選舉機(jī)制

    本文主要介紹了zookeeper選舉機(jī)制的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02

最新評(píng)論