Topic: 如何自动生成"ORG0000001"形式的ID

  Print this page

1.如何自动生成"ORG0000001"形式的ID Copy to clipboard
Posted by: joinstar
Posted on: 2005-12-28 15:22

请问下在SERVLET中如何自动生成"ORG0000001"形式的ID?依次为“ORG0000002,ORG0000003...................”,我的jdbc不支持rs.first(),rs.last(),rs.previous()方法:(是不是得用到递归,请高手指点下,谢谢!

2.Re:如何自动生成"ORG0000001"形式的ID [Re: joinstar] Copy to clipboard
Posted by: cjyzpcl
Posted on: 2005-12-29 10:34

可以这样弄,设置一个基数放到数据库中,初始为0,每次启动服务的时候载入application context中。然后对每个会影响"ORG000XXXX"id变化的数据库操作用transaction包裹,成功就对基数进行改变,然后生成id,主要关心的就是同步性问题,然后写一个事件,在服务关闭的时候把基数写会数据库。

3.Re:如何自动生成"ORG0000001"形式的ID [Re: joinstar] Copy to clipboard
Posted by: joinstar
Posted on: 2005-12-29 19:35

不太懂,可否说详细点,谢谢!

4.Re:如何自动生成"ORG0000001"形式的ID [Re: joinstar] Copy to clipboard
Posted by: cjyzpcl
Posted on: 2005-12-30 12:35

意思是每次启动的时候都从数据库中得到id最大值,然后通过这个值在程序中生成ID。另外,在application context 的destroy()方法中将其写会数据库中。

5.Re:如何自动生成"ORG0000001"形式的ID [Re: joinstar] Copy to clipboard
Posted by: roycexu
Posted on: 2005-12-30 16:09

服务器断电怎么办?

6.Re:如何自动生成"ORG0000001"形式的ID [Re: joinstar] Copy to clipboard
Posted by: ken0719
Posted on: 2005-12-31 09:28

使用一个数据库表存储其它表的当前ID,去这个表查一下就可以得到最大值了,每次提交数据的时候,同时更新一下该表的最大值字段,如果不是分布式应用,可以在服务器上对这个值缓存,提交数据的时候,就要对存ID的表更新,同时更新缓存的值。

7.Re:如何自动生成"ORG0000001"形式的ID [Re: joinstar] Copy to clipboard
Posted by: cjyzpcl
Posted on: 2005-12-31 15:42

可以利用ken0719的方法。
这样断电的问题可以解决。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923