mybatis 获取主键自增id值

 

需求:

  业务编号自动生成,不可编辑,生成规则:

  业务类型编码+当前日期+当天生成序号,例如: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

 

 

 

猜你喜欢

转载自anhongyang125.iteye.com/blog/2405241