1. 程式人生 > 程式設計 >MyBatis-Plus Sequence主鍵的實現

MyBatis-Plus Sequence主鍵的實現

Sequence主鍵是什麼:

序列(SEQUENCE)是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(型別為數字)。不佔用磁碟空間,佔用記憶體。

其主要用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下一個值。

MP內建支援的資料庫主鍵策略:

  • DB2KeyGenerator
  • H2KeyGenerator
  • KingbaseKeyGenerator
  • OracleKeyGenerator
  • PostgreKeyGenerator

mybatis plus 實體類主鍵策略有3種( 註解 > 全域性 > 預設 )

註解使用

public class User extends Model<User> {

  @TableId(value = "id",type = IdType.AUTO)
  private String id;

  @TableField("real_name")
  private String realName;
}

IdType

AUTO:資料庫ID自增
INPUT:使用者輸入ID
NONE:該型別為未設定主鍵型別,註解裡等於跟隨全域性,全局裡約等於 INPUT
ASSIGN_ID:使用雪花演算法分配ID,主鍵型別為Number(Long和Integer)或String

ASSIGN_UUID:分配UUID,主鍵型別為String
ID_WORKER:分散式全域性唯一ID 長整型型別,已棄用
UUID:UUID:32位UUID字串,已棄用
ID_WORKER_STR:分散式全域性唯一ID 字串型別,已棄用

spring boot

支援主鍵型別指定(3.3.0開始自動識別主鍵型別)

方式一:使用配置類

@Bean
public IKeyGenerator keyGenerator() {
  return new H2KeyGenerator();
}

方式二:通過MybatisPlusPropertiesCustomizer自定義

@Bean
public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
  return plusProperties -> plusProperties.getGlobalConfig().getDbConfig().setKeyGenerator(new H2KeyGenerator());
}

Spring

方式一: XML配置

<bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
  <property name="dbConfig" ref="dbConfig"/>
</bean>

<bean id="dbConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
  <property name="keyGenerator" ref="keyGenerator"/>
</bean>

<bean id="keyGenerator" class="com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator"/>

方式二:註解配置

@Bean
public GlobalConfig globalConfig() {
 GlobalConfig conf = new GlobalConfig();
 conf.setDbConfig(new GlobalConfig.DbConfig().setKeyGenerator(new H2KeyGenerator()));
 return conf;
}

到此這篇關於MyBatis-Plus Sequence主鍵的實現的文章就介紹到這了,更多相關MyBatis-Plus Sequence主鍵內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!