永发信息网

java 生6位流水号

答案:2  悬赏:70  手机版
解决时间 2021-01-28 11:35
  • 提问者网友:相思似海深
  • 2021-01-28 01:22
生成流水号的问题,数据在mysql中保存
用三组数据
id createDate maxNo;
1 2011-06-17 09:51:16 000001
2 2011-06-17 09:51:16 000001
3 2011-06-17 09:51:16 000001

标识Id,创建时间 ,当前流水最大值。最大长度为6位也就是最大值为999999
当需要有流水号生成时,先从数据查询最大值,加1,再更新数据库,结果就是000002
如果有并发过来,那么这个时间第一个数据就处于锁定状态,
自动去获取第二个流水号最大值,加1,再更新数据库。
以此类推,如果并发多于三个以上,就处于等待状态.
最佳答案
  • 五星知识达人网友:躲不过心动
  • 2021-01-28 02:23
你是要处理并发问题,
1.处理类中使用线程锁
2.在处理之前使用 select xxx from aaa for update 这样的SQL进行锁表,
全部回答
  • 1楼网友:duile
  • 2021-01-28 02:38
看想要哪种类型的流水号 只要数字的,可以用 系统毫秒+用户id 生成 流水号,这能保证唯一(同一个用户同一毫秒只能发其一次流水号申请) 如果可以带字母的,就用java 自带的 生成uuid 类,生成一个
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯