java时间流水号(java自动生成流水号)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享java时间流水号的知识,其中也会对java自动生成流水号进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

java生成流水号 200+当前时间+0001 200+当前时间+0002 到了每年的1月1号流水号重新从0001开始

在数据库里创建一个序列,每次到数据库里取一次值再拼成流水号。每年一月把序列重置为0

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

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

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

java怎么生成一个一天内不会重复的20位流水号

我为您写了 一遍,望采纳。

package Zxing;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Random;

/**

 * 

 * 开发公司:SOJSON在线工具 p

 * 版权所有:© 

 * 博客地址:

 * p

 * 

 * Demo

 * 

 * p

 * 

 * 区分 责任人 日期说明br/

 * 创建 周柏成 2017年4月11日 09:43  br/

 *

 * @author zhou-baicheng

 * @email  so@sojson.com

 * @version 1.0,2017年4月11日 09:43 br/

 * 

 */

public class Demo {

    public static void main(String[] args) {

        //格式化当前时间

        SimpleDateFormat sfDate = new SimpleDateFormat("yyyyMMddHHmmssSSS");

        String strDate = sfDate.format(new Date());

        //得到17位时间如:20170411094039080

        System.out.println("时间17位:" + strDate);

        //为了防止高并发重复,再获取3个随机数

        String random = getRandom620(3);

        

        //最后得到20位订单编号。

        System.out.println("订单号20位:" + strDate + random);

        

    }

    /**

     * 获取6-10 的随机位数数字

     * @param length    想要生成的长度

     * @return result

     */

    public static String getRandom620(Integer length) {

        String result = "";

        Random rand = new Random();

        int n = 20;

        if (null != length  length  0) {

            n = length;

        }

        int randInt = 0;

        for (int i = 0; i  n; i++) {

            randInt = rand.nextInt(10);

            result += randInt;

        }

        return result;

    }

}

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时间流水号和java自动生成流水号的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-03-22 14:03:42
收藏
分享
海报
53
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了