在唯一主键中转换时间戳字符串

时间:2014-09-23 10:05:24

标签: java sql database string primary-key

我想使用Java 7将String(从XML文件)转换为数据库主键。

特别是,我想确保此值唯一正面尊重数据库主键规范,即: NUMBER(20)。

我尝试转换的字符串具有这种特征:

  

PDR_20140909150001

显然我可以忽略字符串的第一部分(因为对于所有文件都是相同的),但我必须在 int 值中转换时间戳字符串,如20140909150001是唯一的,最大长度为20位。

有什么想法吗?我该怎么办?

3 个答案:

答案 0 :(得分:1)

你可以使用Integer.parseInt()将String转换为int,我假设20140909150001足够独特。希望这有帮助:)

答案 1 :(得分:1)

您可以简单地追加当前系统秒数并将其转换为双倍。

即。 " PDR_20140909150001"将被转换为" 2014090915000159" as string其中附加" 59"是当前系统的第二个将此值转换为Double。

答案 2 :(得分:1)

您可以使用java.math.BigInteger并映射到您的数据库类型编号(XX)。

关于您的独特性:

  • 追加额外秒数,这被认为是您的子系统ID之一
  • 为每个数据库插入附加一个自动生成的唯一ID