java 生成单号

   单号的生成,好像在做项目的时候无处不在。这个生成单号是从数据库里面查询出来,然后再判断是否是今天的日期,如果是今天的日期在后面加一,否则又从001开始。

Servletl的代码:

//生成一个单号
Date RegisterDate=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
String presentTime =sdf.format(RegisterDate);//获取当前时间
UserinfoService userinfoservice=new UserinfoServiceImpl();//查询数据库中最大id的字段,这样就可以查到最新的订单编号
String ReturnTicketNumber=userinfoservice.SelectNumber();//获取数据库最新的编号
String SQLTime=ReturnTicketNumber.substring(2,10);//拆分得到日期
String number=ReturnTicketNumber.substring(10,13);//拆分得到编号
String Number="";
//数据库的时间和当前时间比较(当天已有数据就增加编号,没有就是新的一条编号 为00)
if(SQLTime.equals(presentTime)){
//判断日期是否是今天的,如果是今天的i+1否则从001
 int i=Integer.parseInt(number);
 Number="TP"+SQLTime+0+0+(i+1);//单号格式TP20190628001
}else{
 Number="TP"+presentTime+"001";
}

dao的实现类

 public String SelectNumber() {
//最大ID的单号就是最新的单号
 	String sql="SELECT ReturnTicketNumber FROM SYS_ReturnTicket WHERE ReturnTicketID = (SELECT MAX(ReturnTicketID) FROM SYS_ReturnTicket)";
 	String ReturnTicketNumber="";
 	try {
 		con=DbUtil.getConnection();
 		ps=con.prepareStatement(sql);
 		rs=ps.executeQuery();
 		while (rs.next()) {
 			ReturnTicketNumber=rs.getString("ReturnTicketNumber");
 		}
 	} catch (Exception e) {
 		e.printStackTrace();
 	}finally{
 		DbUtil.close(con, ps, rs);
 	}
 	return ReturnTicketNumber;
 }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值