0

我有一个带有自动增量主键的 sqlite 数据库,它通过 java 接口。由于应用程序的原因,我不能使用数据库中自动生成的主键,所以我需要为 java 中的每一行创建一个 id。

所以我的问题是,是否有一种适用于 java 的算法,我可以遵循它来为数据库创建唯一的整数 id。

我知道我可以增加等,但我需要使用回滚、溢出和间隙填充等东西。

4

1 回答 1

0

根据您的应用程序要求,您可以将主键 Integer 更改为 String 并使用可以轻松使用 java util 类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;
}
于 2012-05-02T09:24:31.063 回答