当前位置: 首页 > news >正文

电商网站建设策划方案网站建设公司 信科便宜

电商网站建设策划方案,网站建设公司 信科便宜,凡客诚品的衣服质量怎么样,备案 网站内容说明#xff1a;当开发中#xff0c;如交易、文件传输过程中的文件名#xff0c;可能需要我们使用一串唯一的数字来锁定这一条“交互记录”#xff0c;即流水号。 本文介绍几种生成6位递增唯一#xff0c;且每日重置的流水号的方式。 方式一#xff1a;使用Redis 我们…说明当开发中如交易、文件传输过程中的文件名可能需要我们使用一串唯一的数字来锁定这一条“交互记录”即流水号。 本文介绍几种生成6位递增唯一且每日重置的流水号的方式。 方式一使用Redis 我们可以将上次生成流水号的日期以及生成的流水号存入到Redis中需要生成流水号时去Redis中将这两个值取出来做判断。 如果日期不是今天则从1开始重新生成 如果日期是今天则将流水号的值递增1返回 代码如下 generateSerialNumber()生成流水号方法 private static final String REDIS_KEY_PREFIX serialNumber:;private static final String LAST_GENERATED_DATE_KEY REDIS_KEY_PREFIX lastGeneratedDate;private static final String SERIAL_NUMBER_KEY REDIS_KEY_PREFIX now;public synchronized String generateSerialNumber() {// 获取当前日期String today LocalDate.now().toString();// 如果Redis中没有日期数据或者Redis中的日期和当前日期不一致if (!today.equals(redisTemplate.opsForValue().get(LAST_GENERATED_DATE_KEY))) {redisTemplate.opsForValue().set(LAST_GENERATED_DATE_KEY, today);redisTemplate.opsForValue().set(SERIAL_NUMBER_KEY, 0);}// 流水号自增1并格式化后返回long serialNumber redisTemplate.opsForValue().increment(SERIAL_NUMBER_KEY,1);return String.format(%06d, serialNumber);}演示 public void generate(){for (int i 0; i 10; i) {System.out.println(generateSerialNumber());}}只要是同一天流水号就递增1返回不是同一天则重置从1重新开始 可在Redis中看到这两个值即最后一次生成流水号的时间以及生成的流水号 方式二存储过程 我们可以在数据库里维护一张表rb_generate_serial_number这张表里面的数据是最近一次生成的流水号时间generate_date以及流水号last_number。相当于把存到Redis中的那两个值放到数据库表中存储。如下 然后写一个存储过程当在DAO层去调用存储过程时就生成一个新的流水号。存储过程如下 CREATE DEFINERrootlocalhost PROCEDURE rb_generate_serial_number() BEGINDECLARE currentSerialNumber INT;DECLARE lastCreateDate DATE;-- 从表中获取上次生成的流水号和生成的日期SELECT last_number, generate_date INTO currentSerialNumber, lastCreateDate FROM o_serial_number_log;-- 检查流水号是否为NULL如果为NULL则将其重置为1IF currentSerialNumber IS NULL THENSET currentSerialNumber 0;END IF;-- 检查日期是否为NULL如果为NULL则重置流水号为1并更新生成流水号的时间为今天IF lastCreateDate IS NULL THENSET currentSerialNumber 0;SET lastCreateDate CURDATE();END IF;-- 检查生成流水号的日期是否为今天IF lastCreateDate CURDATE() THEN-- 如果日期是今天则递增流水号SET currentSerialNumber currentSerialNumber 1;ELSE-- 如果日期不是今天则重置流水号为1并更新生成流水号的时间为今天SET currentSerialNumber 1;SET lastCreateDate CURDATE();END IF;-- 更新数据库中的流水号和日期UPDATE o_serial_number_log SET last_number currentSerialNumber, generate_date lastCreateDate;-- 返回6位流水号SELECT LPAD(currentSerialNumber, 6, 0) AS o_serial_number_log; END在代码中写一个Mapper方法xml里面直接调用这个存储过程如下 select idgenerateSerialNumber resultTypejava.lang.Stringcall rb_generate_serial_number()/select在浏览器中测试访问该接口返回流水号的值。因为数据库里面记录的时间不是当天则从1开始。 数据库表同时更新 方式三查询业务表 如果你的业务表中已包含以上两个字段则可以在生成流水号时去查询业务表中最新的流水号然后递增1作为新生成的流水号。 如果日期不是当天则重置从1开始。 总结 生成唯一递增且每日重置的流水号关键就在于将上次生成流水号的信息存储出来本次生成时再取出来做简单的判断。据此分出三种方式 存在Redis中需要考虑Redis宕机的情况 存在数据库表中需要额外写存储过程 从现有的数据库表中获取需要在业务代码里写判断
http://www.pierceye.com/news/135033/

相关文章:

  • 电子商务网站建设的展望自己做壁纸的网站
  • 国外h5建站网站建设方案总结评语
  • 百度开放平台白城整站优化
  • 搜狗整站优化广州市网站建站
  • 最方便建立网站北京定制网络营销收费
  • 烟台放心的一站式网站建设桐梓网站建设
  • 如何高效的完成网站建设步骤美食分享网站建设策划书
  • 建立网站的软件网站建设数据库的购买
  • 建网站需要多大的宽带wordpress 分享后可见
  • 自建营销型企业网站阿里网 网站备案流程
  • 与网站建设相关的论文题目wordpress图片上文字
  • 怎样搭建网站视频教程58企业网站如何做
  • 比较有名的网站建设公司wordpress 字数
  • 网站内容资源建设渭南市建设项目
  • 网站设置的参数wordpress弹窗登录注册
  • 网课系统软件网站建设费用网站做vr的收费
  • 海宁做网站的公司seo怎么学在哪里学
  • 佛山做网站多少钱服务器学生
  • 自己建网站卖东西怎么进入wordpress修改界面
  • 网站建设与制作报价wordpress菜单怎么设置目录册
  • 学生免费建设网站建设网站是否等于开展网络营销
  • 旅游网站结构图网站编程图
  • 达内网站开发培训价格安装百度到手机桌面
  • 网站服务器慢建站设计网站
  • wordpress 多站点 插件怎么做网站主页设计
  • 网站建设初稿wordpress删除自豪的
  • 某网站突然不能浏览了网站不备案能用吗
  • 厦门做个网站多少钱360建筑网官网下载
  • 镇江外贸网站建设电子工程王粟
  • 申请网站建设经费wordpress做商城网站