java流水号,java流水号生成规则,超过长度用字母

本文目录一览:

java怎么产生无重复的流水号!

希望对你有帮助!获取当前时间毫秒数,如果是单线程的话,一定无重复

一般这样在多线程并发中取到相同毫秒的概率都几乎为0,基本可以保证无重复

java 生成流水号为什么不使用sequence

sequence

是数据库级别的流水号

java生成流水号一般都用uuid生成32位的ID值,确保不会重复。

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 一般订单号用这样还不错吧。呵呵

java怎样自动生成流水号

方法一:

   不用数据库的话弄个 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、全局变量。通过方法获取下一个值,方法同步。

java怎么自动生成订单流水号

看想要哪种类型的流水号

只要数字的,可以用

系统毫秒+用户id

生成

流水号,这能保证唯一(同一个用户同一毫秒只能发其一次流水号申请)

如果可以带字母的,就用java

自带的

生成uuid

类,生成一个

原创文章,作者:MKYM,如若转载,请注明出处:https://www.506064.com/n/137145.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
MKYMMKYM
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相关推荐

  • 解析URI编码规则

    URI(统一资源标识符)是用来标识互联网上资源的字符串文本标识符,是访问互联网资源的地址。在将URI传送到服务器或浏览器时,需要进行特定编码处理,这个编码方式就是URI编码规则。 …

    编程 2025-04-28
  • Python编写规则用法介绍

    Python作为一种广泛使用的高级编程语言,其编写规则的规范性对于提高代码可读性、美观度以及方便调试、维护至关重要。本文将从命名规则、注释规则、代码缩进等多个方面进行详细的阐述,希…

    编程 2025-04-28
  • Python列表长度怎么算

    本文将从以下多个方面阐述Python列表长度的计算方式,包括len()函数、循环遍历、切片、列表推导式等。 一、使用len()函数计算列表长度 计算列表长度最常见的方法是使用Pyt…

    编程 2025-04-28
  • Python缩进规则用法介绍

    本文将从多个方面对Python的缩进规则进行详细的阐述。 一、规则解答 Python中缩进是语法的一部分,它决定了程序的结构和逻辑。Python缩进规则要求同一层级的代码必须保持相…

    编程 2025-04-28
  • Python queue长度用法介绍

    本文将从多个方面详细阐述Python queue长度问题,包括队列长度的定义、如何获取队列长度、队列满时如何处理以及常见的队列长度问题。同时,本文也会提供完整的Python代码示例…

    编程 2025-04-28
  • Python如何输出字符串的长度

    Python是一种十分强大的编程语言,其内置函数和方法的使用可以使得代码变得简单而又直观。本文将从多个方面详细阐述Python如何输出字符串的长度。 一、使用len()函数 Pyt…

    编程 2025-04-27
  • Python获取单链表长度的方法

    本文将从以下几个方面详细阐述Python中获取单链表长度的方法,并为每个方面提供详细的代码示例。 一、定义链表 在Python中,我们可以使用类来定义链表。具体实现如下: clas…

    编程 2025-04-27
  • Python计算向量长度

    Python提供了许多内置函数、模块和方法来计算向量长度。本文将从多个方面对Python计算向量长度进行详细阐述。 一、使用Math模块计算向量长度 Python中提供了一个Mat…

    编程 2025-04-27
  • Python转义字符算不算长度?

    Python是一门易学易用的编程语言,它提供了许多强大的功能和工具,使得开发人员可以快速、高效地创建各种类型的应用程序。其中,转义字符作为一种特殊的字符,可以用于表示一些特殊的字符…

    编程 2025-04-27
  • list长度

    一、长度对内存和性能的影响 在Python中,list是一种基本的数据类型,它常常被用于存储数据。然而,当list的长度不断增加时,它对于内存和性能的影响也逐渐加重。 在处理大量数…

    编程 2025-04-25

发表回复

登录后才能评论