需求:
业务编号自动生成,不可编辑,生成规则:
业务类型编码+当前日期+当天生成序号,例如:12月6日第一次创建业务,则业务编号为:112061
使用技术:
mybatis(实际使用mybatis-plus)
利用replace into 替换当前符合条件记录,replace要求必须有主键或者唯一索引
那么,可以设置日期为唯一索引
表设计:
id 主键自增
date 日期类型,,唯一索引
controller层实现
int seq = repoSeqService.getRepoSeq();
service层
@Autowired
RepoSeqMapper repoSeqMapper;
@Override
public int getRepoSeq() {
RepoSeq seq = new RepoSeq();
seq.setDate(new Date());
//必须传实体,否则取不到参数
int count = repoSeqMapper.insertRepoSeq(seq);
if(count > 0){
return seq.getId();//取自增主键
}
return 0;
}
mapper中
int insertRepoSeq(RepoSeq seq);
mapper.xml中
<insert id="insertRepoSeq" parameterType="com.repobase.entity.RepoSeq"
useGeneratedKeys="true" keyProperty="id">
replace into t_repo_seq(date) values(CURRENT_DATE())
</insert>
必须写:useGeneratedKeys="true" keyProperty="id">
关键:replace into