1.sql
CREATE SEQUENCE user_id_seq MAXVALUE 99;
2.mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.witontek.hms.dao.SequenceDao">
<select id="getNextSequenceId" parameterType="java.lang.String" resultType="java.lang.Integer">
select nextval(#{sequenceName})
</select>
</mapper>
3.dao
public interface SequenceDao {
/**
* 查询制定序列的下一个ID
*/
public Integer getNextSequenceId(@Param("sequenceName") String sequenceName);
}
4.ISequenceService
public String getNextId();
5.SequenceServiceImpl
@Override
public String getNextId() {
Integer nextId = sequenceDao.getNextSequenceId("user_id_seq");
return fixLengthString(String.valueOf(nextId), 12);
}
6.应用
patient.setId(sequenceService.getNextId());