在java应用程序中生成12位唯一编号
我必须将用户配置文件存储在带有12位唯一ID的LDAP中,所以想到通过创建序列并使用Java代码(seq.nextVal())访问它来使用 数据库。 但是我们公司只支持mysql,但是mysql不支持序列。在java应用程序中生成12位唯一编号
是否有解决方法来实现这个使用mysql。
MySQL支持INTEGER数据类型的自动增量。请参阅
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
如果你想现场UNIQUE
,那么你可以将其设置为PRIMARY KEY
。
作为示例,您可以使用ID BIGINT PRIMARY KEY AUTO INCREMENT
作为您的字段。
如果您在Java应用程序需要这个值,你可以:
生成ID在你的MySQL数据库
获取在Java应用程序的价值
使用该值将其保存在您的LDAP中
作为测试,这将保证所有的元素有12位(根据你最后的评论):
CREATE TABLE uniqueids(id BIGINT PRIMARY KEY AUTO_INCREMENT);
INSERT INTO uniqueids VALUES(100000000000);
INSERT INTO uniqueids VALUES(null);
SELECT *
FROM uniqueids
测试在MySQL 5.0
所以每次我想要一个唯一的数字,那么我必须首先调用插入表并获取ID ..是正确的? – 2013-02-15 20:31:57
是的,你是对的。另一种策略可以是手动更新此ID,方法是将其增加1,然后检索此值。 – 2013-02-15 20:33:04
我讨厌这样做......为什么Mysql不支持Sequence ... – 2013-02-15 20:36:53
@LuiggiMendoza:但是我在java应用程序中需要该Id,以便我可以分配给用户配置文件以将其保存在LDAP中。 – 2013-02-15 20:17:42
在使用它保存数据库之前,你确定你的应用程序需要这个ID吗? – 2013-02-15 20:20:08
@LuiggiMendoza:是的,我确定我需要Id.I'm不保存到数据库表,我将配置文件保存到LDAP。 – 2013-02-15 20:22:29