在很多程序的应用中,有许多的地方会用到流水号,我写了个专门用来生成流水号的类
使用:
SerialNumber sn=new SerialNumber();
sn.getSerialNum(tablename, column);//tablename 表名
//column 主键字段(流水号列)
sn.toString(num, length); //将指定的数字格式化 如:
sn.toString(1,4); //结果为0001
下面是SerialNumber类的源代码
package com.aiy.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.aiy.base.DatabaseUtil;
/**
*
* @author aiyanbo
*
*/
public class SerialNumber {
private String prefix="SN";
private String timeFormat="yyMMdd";
private int digit=4;
public SerialNumber() {}
public SerialNumber(String prefix) {
this.prefix = prefix;
}
public SerialNumber(String prefix, String timeFormat, int digit) {
if(digit<2)
digit=2;
this.prefix = prefix;
this.timeFormat = timeFormat;
this.digit = digit;
}
public synchronized String getSerialNum(String tablename,String column){
SerialSource ins=setInstace(tablename, column);
String date=getDate();
if(ins==null){
return prefix+date+toString(1, digit);
}
int max=getMax(ins.getSn());
return prefix+date+toString(max, digit);
}
private SerialSource setInstace(String tablename,String column){
DatabaseUtil<SerialSource> db=new DatabaseUtil<SerialSource>(SerialSource.class);
String sql="select top 1 "+column+" sn from "+tablename+" where "+column+" like '"+(prefix+getDate())+"%' order by "+column+" desc";
return db.queryOne(sql);
}
private String getDate(){
SimpleDateFormat format=new SimpleDateFormat(timeFormat);
Date date=new Date();
return format.format(date);
}
private int getMax(String sn){
return Integer.parseInt(sn.substring((prefix+getDate()).length()))+1;
}
public String toString(int num,int length){
String str="";
String numlen=""+num;
for(int i=length-(numlen.length());i>0;i-- ){
str=str+"0";
}
return str+num;
}
}
分享到:
- 2009-09-28 20:23
- 浏览 10571
- 评论(7)
- 论坛回复 / 浏览 (7 / 6344)
- 查看更多
相关推荐
1.支持数字,字符,随机码,日期代码,并都支持任意自定义进制 2.支持随机密码产生 分别是AP和AW 3.支持日期自定义格式.使用C#格式
Lumion8.0 Pro Serial number reading toolLumion8.0 Pro Serial number reading tool
Get the hard disk serial number or Motherboard serial number in java
All SAP Serial Number Tables.
My Eclipse 6 Serial Number
C# 获取硬盘序列号 SerialNumber;
使用sim卡SerialNumber判断省份
Changing volume's serial number
serial number weishayidingyoa miaoshu a zhenshi kengdie hai de dayu 20zi
Plsql Developer v7.0 + Serial Number.rar
Serial Number: 3AFL-GB6DZ2-U7RXDD-DBHA
获取指定USB设备的VID PID和SerialNumber, VID: 厂商号,PID :产品号
可以修改PC机的逻辑盘的序列号。使用后,可以恢复。
Setup Factory v8.2.1.0 Serial Number For Win7
一些开发环境对于多个USB设备(同时插入多个设备),通过serial number区别使用不同的USB设备。 得到USB设备VID和PID方法。插拔一次设备,执行如下命令。 $ sudo dmesg -c [ 3638.911666] usb 2-2.1: new full-speed ...
产生4位流水号,生成4位流水号:0001——XXXX
瑞星2006序列号及ID
vmware serial number.txt 大全
Get Harddisk serial number