📄 635830.xml
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName>网井</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<TopicId>635830</TopicId>
<TopicName>请问如何自编函数生成唯一ID?</TopicName>
<PostUserId>86631</PostUserId>
<PostUserName>netpit</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>15</ReplyNum>
<PostDateTime>2002-4-10 11:58:51</PostDateTime>
<Point>100</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>使用数据库自增ID,在多套软件数据合并时会有问题
用数据库自带的唯一ID,和数据库又有关系
所以希望编一个函数用在插入记录时生成唯一的ID。
请用JAVA 实现。
请高手指点。</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName>java一菜鸟</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4189250</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>212865</PostUserId>
<PostUserName>hotenM</PostUserName>
<Point>5</Point>
<Content>如果是oracle用自增加序列
如果不是,你专门建立一个表(一列),用一个字段来存储这个id,然后写一个存储过程来得到这个id并自加一</Content>
<PostDateTime>2002-4-10 12:28:02</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4190394</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>181157</PostUserId>
<PostUserName>niexq</PostUserName>
<Point>5</Point>
<Content>用下面的模式生成序列号:
CREATE SEQUENCE "USER"."SEQ_TABLE_ID" INCREMENT BY 1 START WITH 1 MAXVALUE 999999999 MINVALUE 1 NOCYCLE CACHE 20 ORDER;
其中“USER”指用户名,SEQ_TABLE_ID是根据你自己的需要确定的序列号的名字。(上面的序列号是从1到999999999,不循环的,当然也可以建成循环的,前面再自己加上日期之类的区分就行了)</Content>
<PostDateTime>2002-4-10 13:17:21</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>网井</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4190912</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>86631</PostUserId>
<PostUserName>netpit</PostUserName>
<Point>0</Point>
<Content>thanks
不过我不希望该ID与数据库类型有关
要适合常见的DB,such as oracle,mssql,sybase,db2,etc.
Who knows how to generate GUID with program?</Content>
<PostDateTime>2002-4-10 13:40:55</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>笨瓜</PostUserNickName>
<rank>三级(初级)</rank>
<ranknum>user3</ranknum>
<credit>100</credit>
<ReplyID>4191204</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>55544</PostUserId>
<PostUserName>supershot</PostUserName>
<Point>10</Point>
<Content>取得提交时刻的年月日时分秒,再加IP地址</Content>
<PostDateTime>2002-4-10 13:54:34</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>网井</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4192921</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>86631</PostUserId>
<PostUserName>netpit</PostUserName>
<Point>0</Point>
<Content>希望得到更好的答案</Content>
<PostDateTime>2002-4-10 15:14:41</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>凤凰一辉</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>100</credit>
<ReplyID>4227104</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>118364</PostUserId>
<PostUserName>restart2001</PostUserName>
<Point>10</Point>
<Content>可以再建个种子表,</Content>
<PostDateTime>2002-4-12 15:48:14</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>网井</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4227163</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>86631</PostUserId>
<PostUserName>netpit</PostUserName>
<Point>0</Point>
<Content>我现在用年月日时分秒微秒再加一个两位的随机数一个三位的随机数
这样能保证唯一了吧。</Content>
<PostDateTime>2002-4-12 15:50:41</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>jacky</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>105</credit>
<ReplyID>4228126</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>30398</PostUserId>
<PostUserName>kkhui</PostUserName>
<Point>0</Point>
<Content>create table sequence_table(name varchar(20), value number);
一条记录一个sequence, 每select一次,立刻update一次value=value+1
</Content>
<PostDateTime>2002-4-12 16:27:10</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>昊天</PostUserNickName>
<rank>三级(初级)</rank>
<ranknum>user3</ranknum>
<credit>100</credit>
<ReplyID>4228152</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>58261</PostUserId>
<PostUserName>hardas</PostUserName>
<Point>10</Point>
<Content>记得记数器吗?
最本的办法读写一个文件啊。</Content>
<PostDateTime>2002-4-12 16:27:39</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>网井</PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>110</credit>
<ReplyID>4228200</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>86631</PostUserId>
<PostUserName>netpit</PostUserName>
<Point>0</Point>
<Content>请问谁知道怎么用JAVA生成GUID?
</Content>
<PostDateTime>2002-4-12 16:30:00</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>jacky</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>105</credit>
<ReplyID>4228237</ReplyID>
<TopicID>635830</TopicID>
<PostUserId>30398</PostUserId>
<PostUserName>kkhui</PostUserName>
<Point>50</Point>
<Content>GUID,说太长,分开回复
/*
 * RandomGUID
 * @version 1.2 01/29/02
 * @author Marc A. Mnich
 *
 * From www.JavaExchange.com, Open Software licensing
 *
 * 01/29/02 -- Bug fix: Improper seeding of nonsecure Random object
 *             caused duplicate GUIDs to be produced.  Random object
 *             is now only created once per JVM.
 * 01/19/02 -- Modified random seeding and added new constructor
 *             to allow secure random feature.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -