JAVA中取顺序号 (转)[@more@]

在写系统的时候,经常会遇到用一个唯一的键值去票识一个对象,如数据库中一条记录的主键,文件的文件名

等。常用的做法将这个键值从1,2,3……这样一值递加下去,但这样会比较费时。如在数据库中的记录,你要

先找出最大的一个流水号,再进行加1的操作,这样已是做了一个数据库的select操作,如在文件系统中,那就

要先读出所有文件名,对文件名进行排序,那更麻烦了。

下面介绍一个比较简单快捷的方法,那就是使用系统时钟。在Java中,使用System.currentTimeMillis()可以

得到这前系统时间所对应的毫秒数,时间是不会重复的,所以可放心使用。为了满足并发使用的情况,可以加

入同步。

下面有一段样例代码,可以参考一下:

package comm;

import java.util.Random;

public class UId {

private static Random random = new java.util.Random();

private static final int ID_BYTES = 10;

public synchronized static String generateId() {

StringBuffer result = new StringBuffer();

result = result.append(System.currentTimeMillis());

for (int i = 0; i < ID_BYTES; i++) {

result = result.append(random.nextInt(10));

}

return result.toString();

}

}

在上面的代码中,在系统的毫秒数后面还加了10位的随机数,以保证在同一毫秒内的并发取得不同的值。

当然,使用这种方法也有一定的局限,一是你不能随意修改时间,二就是键值不是按顺序的。

java主键后四位顺序号_JAVA中取顺序号 (转)相关推荐

  1. mysql带唯一主建任然发生gap,mysql – 使用主键分块从大表中删除时仍然看到锁等待超时...

    我有一个分布式应用程序,可以将数百万条记录记录到MySQL.有时它是一天一百万或一周,具体取决于用户. 我最近重写了一个"清除"系统,可以自动删除过时的记录.它每12小时运行一次, ...

  2. java主类与源代码名称_Java高级编程基础:类文件结构解析,看穿Class代码背后的秘密...

    类文件结构 在说完了JVM内部结构后,接下来我们需要说一下另外一个非常重要的基础概念Class类结构. 我们既然知道了开发的Java源代码会首先被编译成字节码文件保存,JVM的类加载器会读取这些文件内 ...

  3. sql创建表主键gui_在SQL Server中使用主数据服务快速创建最终用户可以维护的GUI

    sql创建表主键gui 介绍 ( Introduction ) Oft times we are forced into situations where we clearly need to thi ...

  4. java什么是栈和堆_JAVA中的栈和堆

    JAVA在程序运行时,在内存中划分5片空间进行数据的存储.分别是:1:寄存器.2:本地方法区.3:方法区.4:栈.5:堆. 基本,栈stack和堆heap这两个概念很重要,不了解清楚,后面就不用学了. ...

  5. java主键可以包含多列吗,SQLite主键在多列上

    在SQLITE的1个以上的列上指定主键的语法是什么? #1楼 主键字段应声明为非null(这是非标准的,因为主键的定义是它必须唯一且不能为null). 但是下面是对任何DBMS中所有多列主键的一种良好 ...

  6. mysql多重主键错误,老师,jd_spider中数据插入Mysql时一直显示主键错误,求助~

    老师,jd_spider中数据插入Mysql时一直显示主键错误,求助~ 而且peewee会自动生成一个goods表的主键 万分感谢! 建立表的代码如下 from peewee import * db ...

  7. server的自增主键返回函数 sql_mybatis+sqlserver中返回非自增主键

    首先把实体类贴出来(这里只贴出属性,其它的就是getter和setter方法): public class Around { private String xccd;  //对应主键 private ...

  8. java 多个类共用属性_java中读写Properties属性文件公用方法详解

    前言 大家都知道Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改 ...

  9. oracle中主键创建的语法,Oracle中主键、外键、索引、序列、唯一性约束的创建

    1.主键的创建 方法一:直接在sql语句中声明字段主键约束 create table table_name (id type[length] constraint pk_name primary ke ...

最新文章

  1. MySQL -- Lock wait timeout exceeded; try restarting transaction参数控制
  2. leetcode 932. Beautiful Array | 932. 漂亮数组(分治法)
  3. 关于如何用od反汇编win32 控制台程序
  4. 被灵魂问倒:这个BUG为什么没测出来?
  5. idea:properties in parent definition are prohibited警告去除
  6. azure vnc控制台_使用扩展和标签控制Azure成本
  7. Windows Driver开发_NT Driver框架:The driver is not in a state to accept this command
  8. unity中移动lindrender和transform, 两个点的位置
  9. 笔记 -- Maxwell软件仿真
  10. Linux安装phpstudy
  11. 处理 Git 提交中出现 .DS_Store 文件
  12. 经典歌曲多版本欣赏:刘欢《情怨》:华夏元素鲜明的“中国风格“
  13. 【Java】俄罗斯方块带背景音乐
  14. docker运行jenkins挂掉_使用Jenkins在Kubernetes上设置CI/CD管道
  15. 图片去水印在线-图片去水印无痕迹的app
  16. Mac电脑打开app,提示无法验证此App不包含恶意软件解决方法
  17. r7 5800h 怎么样 相当于什么水平
  18. html ppt播放音乐,PPT怎么控制音乐暂停后继续播放?
  19. 创龙TI TMS320C6678 DSP + Xilinx Kintex-7 FPGA的温度传感器、B2B连接器
  20. 那个给三千人算命的大师,正在给自己水滴筹

热门文章

  1. CEDD(Color and Edge Directivity Descriptor)学习篇
  2. 《mongodb权威指南》学习
  3. Programming Computer Vision with Python (学习笔记三)
  4. Python脚本图解
  5. 中国计算机学会CCF推荐国际学术会议和期刊目录-软件工程/系统软件/程序设计语言
  6. 2015年山石网科面试题
  7. 【OpenCV3】旋转矩形(cv::RotateRect)的绘制
  8. 原生JS实现图片滚动
  9. mpvue+vant app搭建微信小程序
  10. 为什么说ReasonReact是编写React的最佳方式?