流水号java代码 流水号编码

Oracle+Java从数据库中取出产品简称+流水号 例如:XXX00000001这样的怎么写?

是中间填充0吗?

创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为五龙口企业提供专业的网站设计、成都网站建设五龙口网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

TYPEABBREVIATE || right(6,'000000' || to_char(PRESENTNO))

怎样使用Java代码产生不重复的流水账号

既然是流水不重复,那么这个变量一定是常驻内存。。

简单的方法当然是个静态变量。。。

class A

{

static double n=0;

public static double getNumber()

{

double++;

return double ;

}

}

需要的时候直接 A.getNumber();直接重复调用就可以了。

如果是关了程序下次还是不重复,那就可以使用文件来初始化n

关闭程序把当前n保存到文件。

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怎么产生无重复的流水号!

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

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

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代码 流水号编码
分享网址:http://ybzwz.com/article/hhggse.html