java代码生成主键 java一键生成代码

java语句如何生成主键

sql建表语句中直接写就行了

创新互联是专业的门头沟网站建设公司,门头沟接单;提供网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行门头沟网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

在java语句中,

String sql="SQL建表语句";

JAVA JDK提供的一个自动生成主键 UUID.randomUUID()的方法 它永远都不会重复嘛??

关于是否重复,首先要说一下uuid生成的原理

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的

UUID由以下几部分的组合:

(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

(2)时钟序列。

(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

通过组成可以看出,首先每台机器的mac地址是不一样的,那么如果出现重复,可能是同一时间下生成的id可能相同,不会存在不同时间内生成重复的数据

至于说同一时间产生重复的数据,就目前来说,是不会的除非极高的高并发(如果发生了,也可以通过原子性操作避免),

所以基本上就认为不会重复好了

java 如何编码实现类似数据库主键的功能:贴代码!谢谢!

数据库的主键主要的功能就是唯一性,以下是我写的代码:

package NormalLearn;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

* 实现主键功能,每次生成的字符串唯一性

* @author Administrator

*

*/

public class OrclSeq{

/**

* 流水号=当前时间(8位)

* @return

*/

public synchronized String getCurrentValue(){

try {

//保证数据的唯一性

Thread.sleep(1000);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

String DateStr = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());

return DateStr;

}

//线程内部类

class ThreadClass implements Runnable{

@Override

public void run() {

String seq = getCurrentValue();

System.out.println(seq);

}

}

public static void main(String[] args) {

//模拟多线程测试

OrclSeq seq = new OrclSeq();

for(int i=0;i1000;i++) {

new Thread(seq.new ThreadClass()).start();

}

}

}


文章标题:java代码生成主键 java一键生成代码
本文URL:http://pwwzsj.com/article/ddgihhh.html