问题是这个最大ID放在哪和怎么存取才会即安全又准确且高效!
可以考虑在数据库中开张表,就记当前最大ID,如果数据库访问层设计的好效率还是可以的(可以参考很多系统中数据库访问层的sequnance做法)
一点想法而已:)呵呵
Oracle数据库中的Sequence的实现好象就是类似这样的,不过它好象是每次按照一个步长产生一组序列号放到Cache里,然后每次去取,取到最大再产生一次。我在Servlet中当然也可以采用类似的方法放DB中,问题是这样做Web层与数据库的交互还是比较频繁,实现也稍显麻烦一些。
我也想过用ServletContext中实现,但是这样的话我怎样记录我的当前流水号,在AppServer重启以后接着从上次的流水开始呢?也就是我怎样在系统Shutdown时把流水号序列化到某处,然后restart时再读入Context中?