要实现按照一定规则自动生成序列号,比如:666660000001,666660000002,666660000003等,这个字段不是表的主键,算是属于业务对应得一个字段,开始考虑直接查数据库,每次自动加一,但这样在并发时就会有问题;若加上synchronized载这段代码上,但在并发大的时候会不会对表产生死锁呢。不知道大家有没有更好的办法,分享一下吧。谢谢啦。
4条回答 默认 最新
- weixin_42388091 2010-07-29 08:27关注
java.util.concurrent.atomic.AtomicInteger
int getAndIncrement()
以原子方式将当前值加 1。其实这东西就是一个线程安全的count++
纯属计数用的 它可以保证你每次的到得值是一个递增不重复的值如果你要保证入库正确的话 当程序结束运行的时候 这个值需要持久化 比如保存至文件 然后程序启动时再读入 这样就保证它永远最大
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题