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

Java 转换唯一主键中的时间戳字符串,java,sql,database,string,primary-key,Java,Sql,Database,String,Primary Key,我想使用Java7将字符串(从XML文件)转换为DB主键 特别是,我希望确保这些值是唯一的、正的,并且遵守DB主键规范,即:数字(20) 我尝试转换的字符串具有以下特征: PDR_20140909150001 显然,我可以忽略字符串的第一部分(因为对于所有文件都是相同的),但我必须将时间戳字符串(如20140909150001)转换为一个int值,该int值必须是唯一的,并且最大长度为20位 有什么想法吗?我该怎么做?您可以使用Integer.parseInt()将字符串转换为int,我假设20

我想使用Java7将字符串(从XML文件)转换为DB主键

特别是,我希望确保这些值是唯一的、正的,并且遵守DB主键规范,即:数字(20)

我尝试转换的字符串具有以下特征:

PDR_20140909150001

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


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

您可以使用Integer.parseInt()将字符串转换为int,我假设20140909150001足够唯一。希望有此帮助:)

您可以使用Integer.parseInt()将字符串转换为int,我假设20140909150001足够唯一。希望有此帮助:)

您可以使用Integer.parseInt()将字符串转换为int,我假设20140909150001足够唯一。希望有此帮助:)

您可以使用Integer.parseInt()将字符串转换为int,我假设20140909150001足够唯一。希望获得以下帮助:)

您只需添加当前系统秒数并将其转换为双精度


i、 e.“PDR_20140909150001”将转换为“2014090915000159”作为字符串,其中附加的“59”是您当前的系统秒数,将此值转换为双精度。

您只需附加当前系统秒数并将其转换为双精度


i、 e.“PDR_20140909150001”将转换为“2014090915000159”作为字符串,其中附加的“59”是您当前的系统秒数,将此值转换为双精度。

您只需附加当前系统秒数并将其转换为双精度


i、 e.“PDR_20140909150001”将转换为“2014090915000159”作为字符串,其中附加的“59”是您当前的系统秒数,将此值转换为双精度。

您只需附加当前系统秒数并将其转换为双精度

i、 e.“PDR_20140909150001”将转换为“2014090915000159”作为字符串,其中附加的“59”是您当前的系统秒,将此值转换为双精度。

您可以使用并映射到您的数据库类型号(XX)

关于独特性,您可以:

  • 附加额外的秒数,将其视为子系统id之一
  • 为每个db插入追加自动生成的唯一id
您可以使用并映射到您的数据库类型编号(XX)

关于独特性,您可以:

  • 附加额外的秒数,将其视为子系统id之一
  • 为每个db插入追加自动生成的唯一id
您可以使用并映射到您的数据库类型编号(XX)

关于独特性,您可以:

  • 附加额外的秒数,将其视为子系统id之一
  • 为每个db插入追加自动生成的唯一id
您可以使用并映射到您的数据库类型编号(XX)

关于独特性,您可以:

  • 附加额外的秒数,将其视为子系统id之一
  • 为每个db插入追加自动生成的唯一id


您必须将其设置为20位整数?不,这只是一个上限,然后您可以在Date对象中转换此字符串,时间为秒,将为您提供整数值。我认为您的字符串是“PDR_yyyymmddhhmmss”格式的,或者您可以简单地附加当前系统秒数并将其转换为double。如果它不是唯一的,那么它不是PK的好候选。PK除了是唯一的错误外,不应有任何语义含义。我会创建一个PK(从序列或GUID)并将时间戳存储为它自己的列。您必须将其设置为20位整数?不,它只是一个上限。然后您可以在Date对象中转换此字符串,时间为秒,将给您int值。我认为您的字符串是“PDR_yyyymmddhhmmss”格式的,或者您可以简单地附加当前系统秒数并将其转换为double。如果它不是唯一的,那么它不是PK的好候选。PK除了是唯一的错误外,不应有任何语义含义。我会创建一个PK(从序列或GUID)并将时间戳存储为它自己的列。您必须将其设置为20位整数?不,它只是一个上限。然后您可以在Date对象中转换此字符串,时间为秒,将给您int值。我认为您的字符串是“PDR_yyyymmddhhmmss”格式的,或者您可以简单地附加当前系统秒数并将其转换为double。如果它不是唯一的,那么它不是PK的好候选。PK除了是唯一的错误外,不应有任何语义含义。我会创建一个PK(从序列或GUID)并将时间戳存储为它自己的列。您必须将其设置为20位整数?不,它只是一个上限。然后您可以在Date对象中转换此字符串,时间为秒,将给您int值。我认为您的字符串是“PDR_yyyymmddhhmmss”格式的,或者您可以简单地附加当前系统秒数并将其转换为double。如果它不是唯一的,那么它不是PK的好候选。PK除了是唯一的错误外,不应有任何语义含义。我会创建一个PK(从序列或GUID)并将时间戳存储为自己的列。不幸的是,时间戳不是唯一的,因为我们的系统与不同的子系统接口。所以,我们可以有这样一个场景,在这个场景中,我们的系统从不同的子系统接收相同的时间戳。最终数据为2014090915000120140923172200。然后你可以转换iti i’我遵循你的建议,但是我如何才能将24位的字符串(2014090915000120140923172200)转换为最大为20的整数值来保持唯一性?不幸的是,时间戳不是唯一的,因为我们的系统与不同的子系统接口。所以,我们可以有这样一个场景:我们的系统从不同的服务器接收相同的时间戳