public String createAutoID(String tableNameKey) {//这里是 Redis key的前缀,如: sys:tabieId:表名 如果不需要去掉表名也可以String key = MessageFormat.format("{0}:{1}:{2}", "sys","tableId",tableNameKey);//查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1Long autoID = stringRedisTemplate.opsForValue().increment(key, 1);//加上时间戳 如果不需要 时分秒可以去掉String datetime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());//这里是 6 位id,如果位数不够可以自行修改 ,下面的意思是 得到上面 key 的 值,位数为6 ,不够的话在左边补 0 ,比如 110 会变成 000110String value = StringUtils.leftPad(String.valueOf(autoID), 6, "0");//然后把 字符串、时间戳和优化后的 ID 拼接String code = MessageFormat.format("{0}{1}{2}",tableNameKey, datetime,value);return code;}
结果:
QTFK20231128160100000001