JAVA生成随机序列-之自我体验
2013-10-15 08:51
225 查看
// 初始化数据
List<Requirement> reqTemp = new ArrayList<Requirement>();
for (Requirement req : reqList) {
req.setReqId(StrUtil.numberUUID());
req.setCreateDate(new Date());
req.setUpdateDate(new Date());
req.setIsSoftDel("1");
req.setReqLevel(getLevel(req.getReqLevel()));
req.setReqPerson(
this.getUserId(req.getReqPerson()));
reqTemp.add(req);
}
// 生成随机数
public static String numberUUID() {
String numTemp = String.valueOf(System.currentTimeMillis());
return numTemp;
}
该成静态资源后依旧不行:
public String strUUID() {
return String.valueOf(System.currentTimeMillis());
}
我们的主键生成机制是想用系统执行的当前时间点,所以用了System.currentTimeMillis的方法。以为用户在某一个毫秒时间点上不会有两个人同时操作。
今天做批量插入时,发现在一个循环里面,一毫秒是可以做完上述的几步操作的,现在的计算机运算速度真的让人汗颜呀。
后来还是不想放弃用时间点来做操作,查找jdk-1.6 api后发现还有一个System.nanoTime的方法,可以精确到纳秒。预先在控制台上运行发现还是会有重复,NND。看来只能用UUID.randomUUID了。
所以告诫一下,各位开发同仁,如果用自我主键(程序控制),要力减主键作用域,缩小主键的使用范围。从而达到数据的唯一性。
List<Requirement> reqTemp = new ArrayList<Requirement>();
for (Requirement req : reqList) {
req.setReqId(StrUtil.numberUUID());
req.setCreateDate(new Date());
req.setUpdateDate(new Date());
req.setIsSoftDel("1");
req.setReqLevel(getLevel(req.getReqLevel()));
req.setReqPerson(
this.getUserId(req.getReqPerson()));
reqTemp.add(req);
}
// 生成随机数
public static String numberUUID() {
String numTemp = String.valueOf(System.currentTimeMillis());
return numTemp;
}
该成静态资源后依旧不行:
public String strUUID() {
return String.valueOf(System.currentTimeMillis());
}
我们的主键生成机制是想用系统执行的当前时间点,所以用了System.currentTimeMillis的方法。以为用户在某一个毫秒时间点上不会有两个人同时操作。
今天做批量插入时,发现在一个循环里面,一毫秒是可以做完上述的几步操作的,现在的计算机运算速度真的让人汗颜呀。
后来还是不想放弃用时间点来做操作,查找jdk-1.6 api后发现还有一个System.nanoTime的方法,可以精确到纳秒。预先在控制台上运行发现还是会有重复,NND。看来只能用UUID.randomUUID了。
所以告诫一下,各位开发同仁,如果用自我主键(程序控制),要力减主键作用域,缩小主键的使用范围。从而达到数据的唯一性。
相关文章推荐
- java Serializable 生成随机序列
- 自我补充篇之java随机验证码的生成(字母不同色,干扰线无规律颜色也不同)
- java Serializable 生成随机序列
- (学习java)写一个完整的程序,实现随机生成20个元素的链表,快速查找中间结点的值并显示
- java实现随机生成UUID
- java 随机生成11位 组合
- Java基础之随机生成数字和字母
- java中生成不重复随机的数字
- java生成随机uuid并保存到文件
- JAVA图形操作中FPS的计算(附带随机生成乱数球体用例)
- Java 批量随机生成身份证号码(未测试)
- java生成随机数字和字母组合
- java生成随机验证码
- Java指定长度随机生成的字符串,且这个字符串必须包含大小写字母和数字
- 网上找了个java随机生成密码的。。。发上来记录一下。
- java生成随机字母
- java 随机生成身份证代码
- java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串
- 对现有数据生成随机序列
- Java随机生成身份证完整示例代码