天天看點

java代碼實作每日從1自增

在這之前寫過一篇字段每天從0開始自增,用資料庫實作的方式,有興趣的話可以看一下:非主鍵自增序列,每天都需要從0開始 儲存到資料庫

現在分享一個簡單的方式:

redis實作:

/**
 * redis操作Service,
 */
public interface RedisService {
    /**
     * 自增操作
     * @param delta 自增步長
     */
    Long increment(String key, long delta);

}
           
/**
 * redis操作Service的實作類
 */
@Service
public class RedisServiceImpl implements RedisService {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    @Override
    public Long increment(String key, long delta) {
        return stringRedisTemplate.opsForValue().increment(key,delta);
    }
}
           

 調用封裝的redis方法:Long increment = redisService.increment(key, 1);increment 就是我們要的自增之後的資料。

/*
 *
 */
private String OrderSn(OmsOrder order) {
         StringBuilder sb = new StringBuilder();
        String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
        String key = ORDER_ID+date;
        Long increment = redisService.increment(key, 1);//隻要key相同,會一直加1,如果key變了從1開始
        String incrementStr = increment.toString();
        if (incrementStr.length() <= 6) {//不足六位補0
            sb.append(String.format("%06d", increment));
        } else {
            sb.append(incrementStr);
        }
        return sb.toString();
    }