代码拉取完成,页面将自动刷新
PAY-ORDER-20191101-00000001
PAY-ORDER-20191101-00000002
PAY-ORDER-20191101-00000003
PAY-ORDER-20191101-00000004
PAY-ORDER-20191101-00000005
PAY-ORDER-20191101-00000006
PAY-ORDER-20191101-00000007
PAY-ORDER-20191101-00000008
PAY-ORDER-20191101-00000009
PAY-ORDER-20191101-00000010
配置项目 | 语法 | 说明 |
---|---|---|
表达式 | s:字符串 nf:数字格式,参见数字格式定义###00000 df:日期,参见日期格式定义 |
sequence表达式 |
生成器数据源 | LONG:虚拟机生成器 REDIS:REDIS DB:数据库生成器 自定义:自定义生成器,参见customSource |
|
重置模式 | DAY:按日重置 WEEK:按周重置 MONTH:...... YEAR:...... RING:环形重置,参见MAX NONE:不重置 |
|
STEP | 数字:默认1 | |
最小值 | 数字:默认0 | |
最大值 | 数字:默认Long.MAX | |
customSource | 自定义生成器 |
//配置sequence规则,这是一个最大10的环形重置sequencce
SequenceRule ring1 = new SequenceRule(sequencesService,"ring");
ring1.s("PAY-ORDER-").df("yyyyMMdd-").nf("00000000",
Source.Config.builder().cycle(Source.Cycle.RING).max(10L).build()
);
sequencesService.register(ring1);
//生成sequence
for (int i = 0; i < 12; i++) {
System.out.println(sequencesService.nextVal("ring"));
}
PAY-ORDER-20191101-00000001
PAY-ORDER-20191101-00000002
PAY-ORDER-20191101-00000003
PAY-ORDER-20191101-00000004
PAY-ORDER-20191101-00000005
PAY-ORDER-20191101-00000006
PAY-ORDER-20191101-00000007
PAY-ORDER-20191101-00000008
PAY-ORDER-20191101-00000009
PAY-ORDER-20191101-00000010
PAY-ORDER-20191101-00000001
PAY-ORDER-20191101-00000002
// 按日重置的
SequenceRule day = new SequenceRule(sequencesService,"day");
day.s("DAY-").df("yyyyMMdd-").nf("######",
Source.Config.builder().cycle(Source.Cycle.DAY).build()
);
sequencesService.register(day);
DAY-20191101-1
DAY-20191101-2
DAY-20191101-3
DAY-20191101-4
DAY-20191101-5
DAY-20191101-6
DAY-20191101-7
DAY-20191101-8
DAY-20191101-9
DAY-20191101-10
DAY-20191101-11
DAY-20191101-12
DAY-20191101-13
DAY-20191101-14
DAY-20191101-15
DAY-20191101-16
DAY-20191101-17
DAY-20191101-18
DAY-20191101-19
DAY-20191101-20
DAY-20191101-21
DAY-20191101-22
DAY-20191101-23
DAY-20191101-24
DAY-20191101-25
DAY-20191101-26
DAY-20191101-27
DAY-20191101-28
DAY-20191101-29
DAY-20191101-30
DAY-20191101-31
DAY-20191101-32
DAY-20191101-33
DAY-20191101-34
DAY-20191101-35
DAY-20191101-36
DAY-20191101-37
DAY-20191101-38
DAY-20191101-39
DAY-20191101-40
DAY-20191101-41
DAY-20191101-42
DAY-20191101-43
DAY-20191101-44
DAY-20191101-45
DAY-20191101-46
DAY-20191101-47
DAY-20191101-48
DAY-20191101-49
DAY-20191101-50
DAY-20191101-51
DAY-20191101-52
DAY-20191101-53
DAY-20191101-54
DAY-20191101-55
DAY-20191101-56
DAY-20191101-57
DAY-20191101-58
DAY-20191101-59
DAY-20191101-60
DAY-20191101-61
DAY-20191101-62
DAY-20191101-63
DAY-20191101-64
DAY-20191101-65
DAY-20191101-66
DAY-20191101-67
DAY-20191101-68
DAY-20191101-69
DAY-20191101-70
DAY-20191101-71
DAY-20191101-72
DAY-20191101-73
DAY-20191101-74
DAY-20191101-75
DAY-20191101-76
DAY-20191101-77
DAY-20191101-78
DAY-20191101-79.。。。。。。
@Service("drdsSequenceSource")
public class DrdsSequenceSource implements Source<Long> {
JdbcTemplate jdbcTemplate;
public DrdsSequenceSource(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public Long increBy(Config sc) {
String sql = "SELECT " + sc.sequenceName + ".nextval FROM dual WHERE count = ? ";
return Long.parseLong(Collections.max(jdbcTemplate.queryForList(sql, new Object[] { sc.step }, String.class)));
}
@Override
public void reset(Config sc) {
}
@Override
public Type type() {
return Type.DRDS;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}
使用
// 00000000-00000004 循环
SequenceRule ring1 = new SequenceRule(sequencesService,"ring");
ring1.s("PAY-ORDER-").df("yyyyMMdd-").nf("00000000",
Source.Config.builder().customSource("drdsSequenceSource").max(10L).build()
);
sequencesService.register(ring1);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。