1、给配置文件添加内置生成器
a、对application-sharding-database.properties配置文件
#id的主键生成器(配置之后就会采用系统内置的雪花算法)
spring.shardingsphere.sharding.tables.position.key-generator.column=id
spring.shardingsphere.sharding.tables.position.key-generator.type=SNOWFLAKE
b、 entity中的Position的id,要添加自助生成
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY) // 增加自助生成
private long id;
c、演示效果
2、自定义的生成器
a、创建一个类,实现ShardingKeyGenerator接口
package com.slin.id;
import org.apache.shardingsphere.core.strategy.keygen.SnowflakeShardingKeyGenerator;
import org.apache.shardingsphere.spi.keygen.ShardingKeyGenerator;
import java.util.Properties;
public class MyId implements ShardingKeyGenerator {
// 借用雪花片算法来自定义自个的主键
SnowflakeShardingKeyGenerator snow= new SnowflakeShardingKeyGenerator();
/*返回生成的主键值*/
public Comparable<?> generateKey() {
System.out.println("执行了自定义逐渐生成器");
return snow.generateKey();
}
/*获取类型,配置当中就是要配置这个名字*/
public String getType() {
return "LAGOUKEY";
}
public Properties getProperties() {
return null;
}
public void setProperties(Properties properties) {
}
}
b、创建META-INF/services文件夹,并添加文件
文件名是:org.apache.shardingsphere.spi.keygen.ShardingKeyGenerator
在文件里面追加包名.类名就可以了
c、修改为自定义的主键类型
d、测试效果
控制台打印了自定义信息,说明是调用了自定义的主键生成
打开一个表中的效果
总结:也就是创建自定义类、添加配置(启用SPI)、应用自定义类型。