java怎样自动生成流水号

作者&投稿:裔忽 (若有异议请与网页底部的电邮联系)
java实现自动生成流水号的方法?~

public static String getOrderNo(){
long No = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String nowdate = sdf.format(new Date());
No = Long.parseLong(nowdate)*1000;//这里如果一天订单多的话可以用一万或更大
No+=getNo();
return getUserId+No;
}
public static int getNo(){//返回当天的订单数+1
return 001;
}

public static String getUserId(){
return "123";
}




用System.out.print(getOrderNo());测试得到:12320060307001 一般订单号用这样还不错吧。呵呵

可以参考下述代码:
private static int sn = 0;public synchronized int getNextSN() {return ++sn;}public int getCurrentSN() { return sn;}

方法一:

     不用数据库的话弄个 static个变量,自己设置个synchronized

     示例:

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class PrimaryGenerater {

    private static final String SERIAL_NUMBER = "XXXX"; // 流水号格式
    private static PrimaryGenerater primaryGenerater = null;

    private PrimaryGenerater() {
    }

    /**
     * 取得PrimaryGenerater的单例实现
     *
     * @return
     */
    public static PrimaryGenerater getInstance() {
        if (primaryGenerater == null) {
            synchronized (PrimaryGenerater.class) {
                if (primaryGenerater == null) {
                    primaryGenerater = new PrimaryGenerater();
                }
            }
        }
        return primaryGenerater;
    }

    /**
     * 生成下一个编号
     */
    public synchronized String generaterNextNumber(String sno) {
        String id = null;
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
        if (sno == null) {
            id = formatter.format(date) + "0001";
        } else {
            int count = SERIAL_NUMBER.length();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < count; i++) {
                sb.append("0");
            }
            DecimalFormat df = new DecimalFormat("0000");
            id = formatter.format(date)
                    + df.format(1 + Integer.parseInt(sno.substring(8, 12)));
        }
        return id;
    }
}

方法二:

   可以在数据库新建序列,再新建一个存储过程控制序列,返回序列值,比如sqlserver用identity,oracle用序列,存储过程可以加锁,当达到999999的时候重置序列,通过代码调用存储过程获得返回值。
2、全局变量。通过方法获取下一个值,方法同步。



看想要哪种类型的流水号
只要数字的,可以用 系统毫秒+用户ID 生成 流水号,这能保证唯一(同一个用户同一毫秒只能发其一次流水号申请)

如果可以带字母的,就用java 自带的 生成UUID 类,生成一个

可以自己封装一个类,按照一定规则生成,例如:

class serial extends String{
    public StringGetSerialNo(){
        Date today=new Date();
....
return string.format("{0}-{1}-{2}",xx,xx,xx);
    }
}


先声明一个date变量,然后获取当前系统时间。利用dateformate转换成为String类型。就是日期了。后面要你自己定义。或者直接去搜UUID,现成的方法,都是唯一的。不过带有字母。

自加 1 被


ava配置问题 懂得进
CPU:Pentium4 2.4G双核 内存:1024MB 操作系统:WindowsXP\/Vista(32bit)DirectX:DirectX9.0c 显卡:Gcforcc 7600GT

ava的大方向是什么
ava的大方向就是j2eej2ee不仅仅是socket编程,具体包括13中核心技术J2EE的核心API与组J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):方法\/步骤 1.JDBC(Java...

ava会议直播时小声说话会被录进去吗
不会。ava会议直播时摄像头麦克风的灵敏度不高,以及放大了电路的放大倍数,在很小声不会被录入。AVA智能录播系统可将各种进行整合录制,生成独立的WMV、ASF标准格式文件。主要用于课程录制、视频会议、教育培训、智能法庭、手术直播等场合。

安霸发布N1系列生成式AI芯片,支持前端设备运行本地LLM应用
”安霸的AI SoC搭配全新Cooper开发平台,预先移植和优化了Llama-2等热门大模型,如N1芯片上的LLava,可同时处理多达32个摄像头的多模态视觉分析。这些模型经过预训练和调优,用户可从Cooper Model Garden获取,以适应各种应用场景。安霸的SoC架构独特,能在超低功耗下同时运行视频处理和AI计算。它不仅是AI...

AVA里面新出来的夺包模式怎么玩啊
主要是夺包,玩的时候有个白的是有距离,去拿包保证自己不死,跑到自己这边阵地2个包都在的话就算赢1回合,如果自己阵地的包没有,回来了也没用。主要是阻击拿包的敌人,和去拿包。不懂,HI我

开AVA占CPU使用率100%,CPU温度升高。
在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将...

安装ava时显示错误码-2147024784怎么办
就好了)二.1、看看是不是空间的问题,如果空间不够,要加大空间。2、如果加大空间还不能生成的话,将有问题的目录下的 index.html(index.*)以及 List_*.html 删除。3、重新生成,OK,我就是这样解决的。再不行就 将AVA全部卸载掉包括注册表的 然后重新换个剩余空间大的磁盘重新安装。

...提取战地之王客户端资源 到了100%后就没了。怎么回事?
最复杂的在注册表中,输入regedit命令打开注册表编辑器,点击的目录:“HKEY-LOCAL-MACHINE \\ SOFTWARE \\ MICROSOFT \\ WINDOWS \\ CURRENTVERSION \\ Run”的,关键是他们不熟悉的自动启动文件的扩展名为EXE,这里切记:有的“木马”程序生成的文件很像文件系统本身,通过伪装蒙混过关,如“铅酸电池1.0木马...

启动AVA找不到DDEAW.DLL
您说的是ddraw.dll吧,用于2D图像生成 找不到ddraw.dll该问题是由病毒木马程序感染系统文件导致,如果只使用杀软简单查杀,会导致电脑出现Dsound.dll、Ddraw.dll、D3d8.dll文件丢失,可以使用金山卫士系统文件修复工具进行系统文件完美修复!不行HI我 ...

玩战地之王(AVA)时,CPU使用率100%
在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将...

岳西县13869862123: java实现自动生成流水号的方法? -
休谢安达: public static String getOrderNo(){long No = 0;SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");String nowdate = sdf.format(new Date());No = Long.parseLong(nowdate)*1000;//这里如果一天订单多的话可以用一万或更大No...

岳西县13869862123: java怎么生成一个一天内不会重复的20位流水号 -
休谢安达: 我为您写了 一遍,望采纳.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60packageZxing;importjava.text....

岳西县13869862123: java怎么产生无重复的流水号! -
休谢安达: 可以使用java.util.UUID.randomUUID().toString(); 产生一个不会重复的流水号.也就是UUID.

岳西县13869862123: java怎么实现流水号自动增长 -
休谢安达: 可以参考下述代码:private static int sn = 0; public synchronized int getNextSN() { return ++sn; } public int getCurrentSN() { return sn; }

岳西县13869862123: java怎么产生无重复的流水号!
休谢安达: 希望对你有帮助!获取当前时间毫秒数,如果是单线程的话,一定无重复 一般这样在多线程并发中取到相同毫秒的概率都几乎为0,基本可以保证无重复

岳西县13869862123: 怎样生成 java 序列化id -
休谢安达: 你好:这个的话,可以这么搞/*** 生成系统流水号* @return 流水号字符*/public static String generateNo(){ //接收流水号String generId = ""; //生成5位随机数int radomInt = new Random().nextInt(99999); //获取系统当前时间...

岳西县13869862123: java生成流水号 200+当前时间+0001 200+当前时间+0002 到了每年的1月1号流水号重新从0001开始 -
休谢安达: 在数据库里创建一个序列,每次到数据库里取一次值再拼成流水号.每年一月把序列重置为0

岳西县13869862123: java自动生成进货编码 -
休谢安达: import java.text.SimpleDateFormat; import java.util.Date;/** * 自动生产编号 * @author*chengeng */ public class AutoNum { /** ** 在用此类时,必须先明确自己模块编号的开头 * @param start编号开头, * @param num从数据库查询出的最大编...

岳西县13869862123: java 生6位流水号 -
休谢安达: 你是要处理并发问题,1.处理类中使用线程锁2.在处理之前使用 select xxx from aaa for update 这样的SQL进行锁表,

岳西县13869862123: java高性能订单流水号永远不重复8位数 -
休谢安达: 8位数 也就是 1~99999999 然后你直接生成的随机数 校对数据库是否存在这个数,存在你就再次调用随机数,不存在你就用这个随机数,并且保存到数据库(注:不满8位,比如1,你就字符串拼接 00000001,再比如 79233 ,你拼接位00079233)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网