用Java实现根据数据库中的数量,生成年月份+序号递增

在日常开发中,经常会遇到根据年月日和第几号文件生成对应的编号,今天给大家提供一个简单的工具类

public static final Long CODE=1L;

    /**
     * @param select 数据库中数据总数
     * @return
     */
    public static String SubjectNo(Long select){
        // 在总数的基础上+1,用来标识新增数据的编号
        String code = sequenceCode(1000, select+CODE);
        Date date=new Date();
        SimpleDateFormat sf=new SimpleDateFormat("yyyy");  // 获取年份
        SimpleDateFormat sf1=new SimpleDateFormat("MM");   // 获取月份
        SimpleDateFormat sf2=new SimpleDateFormat("dd");   // 获取日期
        String year = sf.format(date);    // 取出年
        String month = sf1.format(date);  // 取出月份
        String day = sf2.format(date);    // 取出日期
        return year+month+day+"-"+code;
    }
sequenceCode方法的代码如下
/**
     * 生成001的编号
     * @param maxNum 最大数
     * @param count  累计的
     * @return
     */
    public static String sequenceCode(Integer maxNum, Long count) {  // 如生成001这种,maxNum为1000  0001的话maxNum则为10000,count则是我们从数据库中查询的总数

        String strNum = String.valueOf(maxNum + count);
        if (StringUtils.isEmpty(strNum) || 1 == strNum.length()) {
            return "";
        }
        return strNum.substring(1);
    }

测试一下吧

该示例 测试为年月日+序号递增,如果该业务要求实现按年份+序号递增 只需改一下图一代码即可

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值