MyBatis-Plus Sequence主鍵的實(shí)現(xiàn)
Sequence主鍵是什么:
序列(SEQUENCE)是序列號(hào)生成器,可以為表中的行自動(dòng)生成序列號(hào),產(chǎn)生一組等間隔的數(shù)值(類型為數(shù)字)。不占用磁盤空間,占用內(nèi)存。
其主要用途是生成表的主鍵值,可以在插入語(yǔ)句中引用,也可以通過(guò)查詢檢查當(dāng)前值,或使序列增至下一個(gè)值。
MP內(nèi)置支持的數(shù)據(jù)庫(kù)主鍵策略:
- DB2KeyGenerator
- H2KeyGenerator
- KingbaseKeyGenerator
- OracleKeyGenerator
- PostgreKeyGenerator
mybatis plus 實(shí)體類主鍵策略有3種( 注解 > 全局 > 默認(rèn) )
注解使用
public class User extends Model<User> { @TableId(value = "id", type = IdType.AUTO) private String id; @TableField("real_name") private String realName; }
IdType
AUTO:數(shù)據(jù)庫(kù)ID自增
INPUT:用戶輸入ID
NONE:該類型為未設(shè)置主鍵類型,注解里等于跟隨全局,全局里約等于 INPUT
ASSIGN_ID:使用雪花算法分配ID,主鍵類型為Number(Long和Integer)或String
ASSIGN_UUID:分配UUID,主鍵類型為String
ID_WORKER:分布式全局唯一ID 長(zhǎng)整型類型,已棄用
UUID:UUID:32位UUID字符串,已棄用
ID_WORKER_STR:分布式全局唯一ID 字符串類型,已棄用
spring boot
支持主鍵類型指定(3.3.0開(kāi)始自動(dòng)識(shí)別主鍵類型)
方式一:使用配置類
@Bean public IKeyGenerator keyGenerator() { return new H2KeyGenerator(); }
方式二:通過(guò)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; }
到此這篇關(guān)于MyBatis-Plus Sequence主鍵的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)MyBatis-Plus Sequence主鍵內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java使用Runnable和Callable實(shí)現(xiàn)多線程的區(qū)別詳解
這篇文章主要為大家詳細(xì)介紹了Java使用Runnable和Callable實(shí)現(xiàn)多線程的區(qū)別之處,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-07-07深入探究SpringBoot可以同時(shí)處理多少請(qǐng)求
SpringBoot是一款非常流行的Java后端框架,它可以幫助開(kāi)發(fā)人員快速構(gòu)建高效的Web應(yīng)用程序,但是,許多人對(duì)于SpringBoot能夠同時(shí)處理多少請(qǐng)求的疑問(wèn)仍然存在,在本篇文章中,我們將深入探討這個(gè)問(wèn)題,需要的朋友可以參考下2023-07-07SpringBoot+MQTT+apollo實(shí)現(xiàn)訂閱發(fā)布功能的示例
這篇文章主要介紹了SpringBoot+MQTT+apollo實(shí)現(xiàn)訂閱發(fā)布功能的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06基于Properties實(shí)現(xiàn)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng)
這篇文章主要介紹了基于Properties實(shí)現(xiàn)配置數(shù)據(jù)庫(kù)驅(qū)動(dòng),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05