java时间流水号(java自动生成流水号)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
今天给各位分享java时间流水号的知识,其中也会对java自动生成流水号进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
- 1、java生成流水号 200+当前时间+0001 200+当前时间+0002 到了每年的1月1号流水号重新从0001开始
- 2、java怎么产生无重复的流水号!
- 3、java怎么生成一个一天内不会重复的20位流水号
- 4、java怎样自动生成流水号
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自动生成流水号的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
