java实现数据库主键生成示例_java

复制代码 代码如下:

package test;
import java.util.concurrent.atomic.AtomicInteger;

public class IDGenerate {
private static final AtomicInteger integer = new AtomicInteger(0);
public static long getId() {
  long time = System.currentTimeMillis();
  StringBuilder str = new StringBuilder(20);
  str.append(time);
  int intValue = integer.getAndIncrement();
  if (integer.get() >= 10000) {
   integer.set(0);
  }
  if (intValue < 10) {
   str.append("000");
  } else if (intValue < 100) {
   str.append("00");
  } else if (intValue < 1000) {
   str.append("0");
  }
  str.append(intValue);
  return Long.parseLong(str.toString());
 }
 public static void main(String[] args) {
  for (int i = 0; i < 100003; i++) {
   new Test().start();
  }
 }
 private static class Test extends Thread {
  @Override
  public void run() {
   System.out.println(IDGenerate.getId());
  }

 }
}

时间: 2024-08-30 03:41:50

java实现数据库主键生成示例_java的相关文章

谈数据库主键选取策略

INT和GUID,究竟选谁? 关于数据库主键的选取策略,大家都是在INT和GUID两者中徘徊.忘了那些喋喋不休的争论吧!毕竟鱼与熊掌,不可兼得.在这篇文章中,我们不再关注它们的优缺点,自觉先行做点功课哦! 如小标题,如果真要选,我会选谁?肯定地说,我会选GUID,又或者两者都选上.后者情形下,使用GUID做主键.INT做小二,INT在业务层生成,这要即使重复了,也不碍事,且INT是要反馈给前端的,定时做一个防冲突检测.如果让用户记忆或反馈那GUID字符串(去连接字符后32位),可以直接去跳楼了!

小议sqlserver数据库主键选取策略_MsSql

因为主键可以唯一标识某一行记录,所以可以确保执行数据更新.删除的时候不会出现张冠李戴的错误.当然,其它字段可以辅助我们在执行这些操作时消除共享冲突,不过就不在这里讨论了.主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致.所以数据库在设计时,主键起到了很重要的作用. 常见的数据库主键选取方式有: 自动增长字段 手动增长字段 UniqueIdentifier "COMB(Combine)"类型 一.自动增长型字段 很多数据库设计者喜欢使用自动增长型字段,因为它使用简单.

java随机字符串生成示例_java

复制代码 代码如下: package com.phyl.password; import java.util.ArrayList;import java.util.Arrays;import java.util.Random;/** * 字符随机生成类 * @author ASUS * */public class PassWord {  /**  * 密码类型枚举  * @author ASUS  */ public static enum TYPE {  /**   * 字符型   */  

数据库主键设计之思考

主键的必要性: 有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦. 主键的无意义性: 我强调主键不应该具有实际的意义,这可能对于一些朋友来说不太认同,比如订单表吧,会有"订单编号"字段,而这个字段呢在业务实际中本身就是应该具有唯一性,具有唯一标识记录的功能,但我是不推荐采用订

java压缩文件和下载图片示例_java

本文实例为大家分享了java压缩文件和下载图片示例,供大家参考,具体内容如下 主页面index.xml <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <head> <title>项目的主页</title> </head> <body> <h2>主页

数据库主键生成器java代码

package com.aspboy.base.database.util; import java.util.HashMap; public class KeyGenerator { private static KeyGenerator keygen=new KeyGenerator(); private static final int POOL_SIZE=20; private HashMap keylist=new HashMap(10); private KeyGenerator()

java多线程和并发包入门示例_java

一.java多线程基本入门java多线程编程还是比较重要的,在实际业务开发中经常要遇到这个问题. java多线程,传统创建线程的方式有两种. 1.继承自Thread类,覆写run方法. 2.实现Runnable接口,实现run方法. 启动线程的方法都是调用start方法,真正执行调用的是run方法.参考代码如下: 复制代码 代码如下: package com.jack.thread; /** * 线程简单演示例子程序 *  * @author pinefantasy * @since 2013-

java线程并发blockingqueue类使用示例_java

如果BlockingQueue是满的任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有新的空间才会被唤醒继续操作. BlockingQueue提供的方法主要有: add(anObject): 把anObject加到BlockingQueue里,如果BlockingQueue可以容纳返回true,否则抛出IllegalStateException异常. offer(anObject):把anObject加到BlockingQueue里,如果BlockingQueue

java使用http实现文件下载学习示例_java

复制代码 代码如下: package com.hongyuan.test; import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.MalformedURLException;import