解决订单收据编号的累加问题。格式 D0000001;java+ mysql

本文介绍如何在Java应用中结合MySQL数据库生成累加的订单编号。提出两种解决方案:1. 在MySQL中创建自定义函数,当规则变动时直接维护函数;2. 使用Java代码查询最大编号并进行格式化处理。详细代码示例供参考。
摘要由CSDN通过智能技术生成

1.需求:第一次生成的订单号为:D0000001,以后的每个新订单编号都累加1;

2.实现思路

 当初我也是碰到一个需求里面要用到编号生成,百度看了一下别人的例子,好多都不符合我的需求,于是自己写了俩demo;同时也就发了出来,跟着思路随手写的当然里面还有很多需要优化的地方。

   1.直接在数据库写一个自定义函数; 以后要是如果有订单编号取值规则变动的话直接维护函数即可;这种方式对程序的兼容性和扩展性比较好;

-- 创建自定义函数 
create function testNum() returns varchar(50)
begin 
  -- 声明一个变量用来存放输出值
    declare outNumStr varchar(50);
    -- 查询逻辑体
    select concat(left('D0000000',length('D0000000') - length(cast(substr(signNum,2,length(signNum)) as unsigned)+1)),
            cast(substr(signNum,2,length(signNum)) as unsigned)+1) as signNum  
    FROM 你的订单表名 order by createTime desc limit 1 into outNumStr ;
   -- 返回值
     return outNumStr;
end;
/
-- 删除函数
drop function testNum
/
-- 查询函数
select  testNum()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值