通常shardingsphare主键生成方式snowflake,可以在配置文件中直接设置,在进行insert操作的时候,不用设置主键字段,shardingspahre自动在插入的时候生成,但是如果需要提前生成,可以使用shardingsphare提供的类,提前生成一个ID,显示插入主键中也可以。
1.在项目中引入shardingspahre包,
2.import io.shardingsphere.core.keygen.DefaultKeyGenerator;
3.在程序中声明DefaultKeyGenerator对象
DefaultKeyGenerator key = new DefaultKeyGenerator();
Number orderIdKey = key.generateKey();
Long orderId = orderIdKey.longValue();
orderId就是提前生成好的主键ID,在插入数据的时候,直接插入这个值作为主键ID即可
因为雪花法是根据三个参数进行技术,机器ID,时间差等,不用默认值的话,在生成ID之前,手动设置一下
key.setMaxTolerateTimeDifferenceMilliseconds(0);
key.setTimeService();
key.setWorkerId(1);//设置机器ID