Java数据库自动增量主键算法

时间:2012-05-02 08:37:23

标签: java sql

我有一个带有自动增量主键的sqlite数据库,它通过java连接。 出于应用原因,我无法使用数据库中自动生成的主键,因此我需要为java中的每一行创建一个id。

所以我的问题是,是否有针对java的算法,我可以遵循为数据库创建唯一的Integer ID。

我知道我可以增加等但是我需要使用诸如回滚,溢出和填充间隙之类的东西。

1 个答案:

答案 0 :(得分:0)

根据您的应用程序要求,您可以将主键Integer更改为String并使用可以轻松使用java util class java.util.UUID。表示不可变的通用唯一标识符(UUID)。 UUID表示128位值。

如果应用程序具有整数主键的任何持久性。您可以编写一个生成序列号的函数。它背后的逻辑是,基本上它需要有当前序列。如果没有,则调用db并获取最大条目。

static Integer currentSequence=-1;
static Integer function primaryKeyGenerator(){
 if(currentSequence==-1){
   //Make a db call and get the max
  if(no data in table){
    currentSequence=1;
  }else
   currentSequence=rs.getInt(1);
 }
return currentSequence+=1;
}