/**
* 产生UUID
*
* @return
*/
protected String genUUID(String prefix){
StringBuffer buf = new StringBuffer(prefix);
buf.append(Math.abs(UUID.randomUUID().getLeastSignificantBits()));
buf.append("T").append(pureDTFormat.format(new Date(System.currentTimeMillis())));
return buf.toString();
}
//前面用时间戳,结尾用随机数比较好,查数据库的时候容易区别
private String getUUID(String prefix){
StringBuffer buf = new StringBuffer(prefix);
buf.append(pureDTFormat.format(new Date(System.currentTimeMillis())));
buf.append(Math.abs(UUID.randomUUID().getLeastSignificantBits()));
return buf.toString();
}
/**
* genTimeAndRandomID
*
* @return
*/
protected String genTimeAndRandomID(String prefix){
StringBuffer buf = new StringBuffer(prefix);
buf.append(pureDTFormat.format(new Date(System.currentTimeMillis())));
buf.append("-").append((int)(Math.random()*1000)+1000);
return buf.toString();
}
/**
* 判断字符串是否为空.
*
* @param str
* @return
*/
protected boolean isStrNotEmpty(String str){
return (str != null && !str.trim().equals(""));
}
//生成序列号,有顺序,作为主键比较好,可以根据主键排序
private String getSID(){
StringBuffer buffer = new StringBuffer();
//buffer.append(System.currentTimeMillis()); //时间戳1556517445628356
buffer.append(pureDTFormat.format(System.currentTimeMillis())); //时间戳20190429143327721
buffer.append((int)(Math.random()*900 + 100)); //三位随机数
return buffer.toString();
}
math.rondom()的区间范围是:0.0---1.0
调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间
buffer.append((int)(Math.random()*9000 + 1000)); //四位随机数
或者:
(int)((Math.random()*9+1)*1000);
//生成SequenceID
public String getSID(String prefix){
StringBuffer buffer = new StringBuffer();
buffer.append(prefix); //前缀
buffer.append(System.currentTimeMillis()); //时间戳
buffer.append((int)(Math.random()*900 + 100)); //三位随机数
return buffer.toString();
}
DoorGuardPerson dgpData = formBean.toDoorGuardPerson();
dgpData.setPersonid(this.genUUID("D"));
ret = doorGpersonService.addDoorGuardPerson(dgpData);
还有:
String randomStr = Long.toUnsignedString(UUID.randomUUID().getLeastSignificantBits());