Java生成编号

在项目中,经常要动态生成各种编号,例如订单编号,客户编号。这些编号一般是系统默认生成的,一般是不能更改的,也不给用户操作的,那么现在我们生成一个客户编号。例如:KH2021071500001

首先,这个简单的客户编号的组成一般是前缀“KH”+ 获取的日期+一个流水号。生成的思路是:先去数据库查询出已有多少条数据,然后再以这个作为基础再加1,然后就可以作为下一个编号,然后再拼接上获取的时间日期,和流水号。如果你要复杂一点的或者更独一无二的,可以再加上获取时间戳。(这里是用IDEA编辑工具)

第一步,在Dao层查出数据库有多少原始数据,

private static final String ClientCountAll="SELECT COUNT(sys_client_management.id) FROM sys_client_management";

//查询客户的总条数

@Override
public int clientcountAll() {
    int intR=0;
    Connection conn=null;
    PreparedStatement ps=null;
    ResultSet rs=null;
    try {
        String strSql=ClientCountAll;

        conn=JdbcUtils.getConnection();
        ps=conn.prepareStatement(strSql);
        rs= ps.executeQuery();
        while (rs.next()){
            intR=rs.getInt(1);
        }
    } catch (SQLException throwables) {
        throwables.printStackTrace();
    }finally {
        JdbcUtils.close(conn,ps,rs);
    }
    return intR;
}

第二步,在Service层进行数据处理,生成客户编号

首先,写一个方法生成客户编号。

public String ClientId(){
     //调用Dao查询用户条数
     int count=this.clientDao.clientcountAll();

    Date date = new Date();
    int dbclientNumber=count;
    int newclientNumber=dbclientNumber+1;
    int Number=0;
    String tris=String.valueOf(newclientNumber);
    Number=tris.length()+1;
    if (Number == 1) {
        tris = "00000" + tris;
    } else if (Number == 2) {
        tris = "0000" + tris;
    } else if (Number == 3) {
        tris = "000" + tris;
    } else if (Number == 4) {
        tris = "00" + tris;
    }else if (Number == 5) {
        tris = "0" + tris;
    }
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

    String number="KH"+dateFormat.format(date)+tris;
    return number;
}

第三步,上面return回了一个编号,那么我们还要在Service层写一个实现类的方法

返回到Servlet层

/**
 * 生成客户编号
 * @return
 */
@Override
public String clientNumber() {
    return this.ClientId();
}

第四步,那么我们就在Servlet层进行接收,并返回页面层,

/**
 * 生成客户编号
 */
public void clientNumber(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException{
    //获取编号
    String clientNumber=this.clientService.clientNumber();
    returnJson(response,clientNumber);
}

第五步,我们在页面层(jsp)接收,然后调用就可以了

/**
 * 请求客户编号的方法
 */
function number(){
    //请求客户编号
    var url="${ctx}/client?method=clientNumber";
    $.post(url,{},function (data){
        $("#clientNumber1").val(data);
    })
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值