1.准备工具,准备表和序列
CREATE TABLE “SYSDBA”.“A”
(
“A” BIGINT,
“B” VARCHAR(50),
“C” INTEGER,
“D” VARCHAR(50)) ;
CREATE SEQUENCE “SYSDBA”.“SEQ_1”
INCREMENT BY 1
START WITH 1
MAXVALUE 11111111111111
MINVALUE 1
NOCYCLE
NOCACHE
NOORDER
;
2.使用@keySequence,自己实现IKeyGenerator
主要代码
public class DmNewGenerator implements IKeyGenerator {
@Override
public String executeSql(String incrementerName) {
//System.out.println("SELECT " + incrementerName + ".NEXTVAL ");
return "SELECT " + incrementerName + ".NEXTVAL ";
}
@Override
public DbType dbType() {
return DbType.DM;
}
}
//此处作用是自定义表主键生成器实现
@Configuration
@MapperScan(“com.example.demo.mapper”) //设置mapper接口的扫描包
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public H2KeyGenerator paginationInterceptor() {
return new H2KeyGenerator();
}
/**
* 序列生成器
*/
@Bean
public OracleKeyGenerator oracleKeyGenerator(){
return new OracleKeyGenerator();
}
@Bean
public DmNewGenerator dmKeyGenerator(){
return new DmNewGenerator();
}
}
//此处作用是为了使用mapper接口时调用序列生成器
@Data
@KeySequence(value = “SEQ_1”,dbType = DM)
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@TableName(“A”)
public class User {
@TableId(value = “A”, type = IdType.INPUT)
private Long A;
//private String A;
private String B;
private Integer C;
private String D;
}
//此处作用为指定使用dbType为DM,序列名为SEQ_1