如何在项目中使用uid-generator主键的生成方式
第一步:建表
CREATE TABLE WORKER_NODE
(
ID number(9) NOT NULL ,
HOST_NAME VARCHAR(64) NOT NULL ,
PORT VARCHAR(64) NOT NULL ,
TYPE INT NOT NULL ,
LAUNCH_DATE DATE ,
MODIFIED TIMESTAMP NOT NULL ,
CREATED TIMESTAMP NOT NULL,
PRIMARY KEY(ID)
);
–创建同义词,自已更改所属用户,这里用的his_ext用户(可以不使用同义词)
create or replace public synonym WORKER_NODE for his_ext.WORKER_NODE
– 创建序列 WorkerNodeId –
create sequence WorkerNodeId_Seq
increment by 1
start with 1
minvalue 1
maxvalue 999999999;
创建触发器.让ID列自增
create or replace trigger WORKER_NODE_trigger before
insert on WORKER_NODE for each row
when (new.ID is null)
begin
select WorkerNodeId_Seq.nextval into:new.ID from dual;
end;
第二步:Maven引用
<dependency>
<groupId>com.github.wujun234</groupId>
<artifactId>uid-generator-spring-boot-starter</artifactId>
<version>1.0.2.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
<exclusion>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
第三部:开始使用
UidGenerator接口提供了 UID 生成和解析的方法,提供了两种实现: DefaultUidGenerator实时生成
CachedUidGenerator 生成一次id之后,按序列号+1生成一批id,缓存,供之后请求
如对UID生成性能有要求, 请使用CachedUidGenerator
@Resource
private UidGenerator uidGenerator;
@Test
public void testSerialGenerate(