一种简单的ID生成策略: Mysql表生成全局唯一ID

本文介绍了一种简单利用MySQL自增ID生成全局唯一ID的方案,通过创建包含两个字段的表并设置自增起始值,结合Mybatis Mapper进行操作,确保并发安全。测试表明该方法在并发环境下仍能保持安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成全局ID的方法很多, 这里记录下一种简单的方案: 利用mysql的自增id生成全局唯一ID.

1. 创建一张只需要两个字段的表:

CREATE TABLE `guid` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `stub` char(1) NOT NULL DEFAULT '' COMMENT '桩字段,占坑的',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_stub` (`stub`)  -- 将 stub 设为唯一索引
) ENGINE=MyISAM AUTO_INCREMENT=1000000000 DEFAULT CHARSET=utf8; 

指定自增起始: alter table guid auto_increment=1000000000, 这样可以保证ID为10位(涨到11位几乎不可能吧).

2. 定义 mybatis mapper:

@Mapper
public interface GuidMapper {


    /**获取全局唯一ID
     * @return
     */
    // replace into afs_guid(stub) values('a');
    // select last_insert_id();
    @Insert("REPLACE INTO guid (stub) VALUES('a')")
    @SelectKey(statement = {"SELEC
好的,具体的操作步骤如下: 1. 首先需要将您要替换class 文件编译成字节码文件(即 .class 文件),可以使用 Java 编译器(如 javac)进行编译。比如,您可以在命令行中使用以下命令进行编译: ``` javac YourClass.java ``` 其中,YourClass.java 是您要替换class 文件文件名。 2. 使用压缩软件(如 WinRAR、7-Zip 等)打开原始的 jar 。一般情况下,jar 是一个 ZIP 压缩文件,您可以使用任何支持 ZIP 格式的压缩软件进行打开。 3. 找到您要替换class 文件。一般来说,class 文件都会放在 jar 的某个目录下(通常是根目录或者一个特定的目录),您可以在压缩软件中浏览 jar 的目录结构,找到您要替换class 文件。 4. 将要替换class 文件删除。在压缩软件中,您可以直接删除要替换class 文件。 5. 将步骤 1 中编译好的 class 文件复制到 jar 中。在压缩软件中,您可以将编译好的 class 文件复制到与要替换class 文件相同的位置。 6. 关闭压缩软件并保存修改后的 jar 。在压缩软件中,您需要保存修改后的 jar ,以便后续使用。 7. 将修改后的 jar 放回原来的位置。将修改后的 jar 放回到原来的位置,以便应用程序可以使用新的 class 文件。 请注意,如果您正在运行一个 Java 应用程序,需要重新加载修改后的 jar 才能使新的 class 文件生效。具体的操作方式可能因应用程序的不同而有所不同,一般来说,您可以尝试重启应用程序,或者重新加载 jar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值