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

获取不重复流水号(java)

一:概述

很多业务场景都需要获取不重复的业务流水号,当微服务项目或服务多节点部署时,获取流水号场景使用分布式锁性能低下,可以基于数据库行锁实现获取不重复流水号。

二:创建流水号数据库

CREATE TABLE `serial` (`id` varchar(32) NOT NULL COMMENT '唯一标识',`prefix` varchar(32) DEFAULT NULL COMMENT '流水前缀',`num` int(11) DEFAULT NULL COMMENT '流水序号',PRIMARY KEY (`id`),UNIQUE KEY `serial_prefix_IDX` (`prefix`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流水号';

三:获取流水工具

3.1:创建mapper方法及对应xml文件

## mapper文件创建两个方法
/*** 根据前缀获取流水号* @param prefix* @return*/Serial getByPrefix(@Param("prefix")String prefix);/*** 更新流水号* @return*/Integer updSerial(@Param("id")String id,@Param("num")Integer num);## 对应 xml文件方法<select id="getByPrefix" resultType="。。。Serial">select * from serial sde where prefix = #{prefix}</select><update id="updSerial">update serial set num=#{num}+1 where id=#{id} and num =#{num}</update>

3.2:获取流水号方法

@Resourceprivate SerialMapper mapper;@Overridepublic String getNum(String prefix) {while (true){Serial num = mapper.getByPrefix(prefix);if(num==null){this.insert(new Serial(prefix,1));return String.format("%05d",1);}else {if(mapper.updSerial(num.getId(),num.getNum())>0){return String.format("%05d",num.getNum()+1);}}}}

相关文章:

获取不重复流水号(java)

一&#xff1a;概述 很多业务场景都需要获取不重复的业务流水号&#xff0c;当微服务项目或服务多节点部署时&#xff0c;获取流水号场景使用分布式锁性能低下&#xff0c;可以基于数据库行锁实现获取不重复流水号。 二&#xff1a;创建流水号数据库 CREATE TABLE serial (i…...

【python虚拟环境管理】【mac m3】 使用pipx安装poetry

文章目录 一. 安装 pipx二. 安装Poetry1. 安装2. advanced 操作 官网文档&#xff1a;https://python-poetry.org/docs/ pipx介绍文档&#xff1a;https://blog.51cto.com/u_15064632/2570626 一. 安装 pipx pipx 用于全局安装 Python 命令行应用程序&#xff0c;同时在虚拟环…...

git使用以及理解

git练习网站 Learn Git Branching git操作大全Oh Shit, Git!?! git commit git branch name git merge bugFix 合并俩个分支 git rebase main git checkout headgit switch head 会导致HEAD分离 &#xff0c;就是指head->HEAD->c1 相对引用 ------------------- …...

openlayers 3d 地图 非三维 立体地图 行政区划裁剪 地图背景

这是实践效果 如果没有任何基础 就看这个专栏&#xff1a;http://t.csdnimg.cn/qB4w0 这个专栏里有从最简单的地图到复杂地图的示例 最终效果&#xff1a; 线上示例代码&#xff1a; 想要做这个效果 如果你的行政区划编辑点较多 可能会有卡顿感 如果出现卡顿感需要将边界点相应…...

GEO数据挖掘从数据下载处理质控到差异分析全流程分析步骤指南

0. 综合的教学视频介绍 GEO数据库挖掘分析作图全流程每晚11点在线教学直播录屏回放视频&#xff1a; https://www.bilibili.com/video/BV1rm42157CT/ GEO数据从下载到各种挖掘分析全流程详解&#xff1a; https://www.bilibili.com/video/BV1nm42157ii/ 一篇今年近期发表的转…...

‍我想我大抵是疯了,我喜欢上了写单元测试

前言 大家好我是聪。相信有不少的小伙伴喜欢写代码&#xff0c;但是对于单元测试这些反而觉得多此一举&#xff0c;想着我都在接口文档测过了&#xff01;还要写什么单元测试&#xff01;写不了一点&#xff01;&#xff01; 由于本人也是一个小小程序猿&#x1f649;&#xf…...

【Visual Studio】Visual Studio使用技巧及报错解决合集

目录 目录 一.概述 二.Visual Studio报错问题及解决方法 三.Visual Studio操作过程中遇到的问题及解决方法 四.Visual Studio编译优化选项 五.Visual Studio快捷键 一.概述 持续更新Visual Studio报错及解决方法&#xff0c;包括Visual Studio报错问题及解决方法、Visua…...

服务器数据恢复—raid5阵列热备盘同步失败导致lun不可用的数据恢复案例

服务器存储数据恢复环境&#xff1a; 华为S5300存储中有一组由16块FC硬盘组建的RAID5磁盘阵列&#xff08;包含一块热备盘&#xff09;。 服务器存储故障&#xff1a; 该存储中的RAID5阵列1块硬盘由于未知原因离线&#xff0c;热备盘上线并开始同步数据&#xff0c;数据同步到…...

算法题目整合

文章目录 121. 小红的区间翻转142. 两个字符串的最小 ASCII 删除总和143. 最长同值路径139.完美数140. 可爱串141. 好二叉树 121. 小红的区间翻转 小红拿到了两个长度为 n 的数组 a 和 b&#xff0c;她仅可以执行一次以下翻转操作&#xff1a;选择a数组中的一个区间[i, j]&…...

万界星空科技AI低代码平台:重塑数字化创新边界

在这个日新月异的数字化时代&#xff0c;技术的飞速发展正以前所未有的力量重塑着每一个行业。企业如何在瞬息万变的市场环境中保持竞争力&#xff0c;实现业务的快速迭代与创新&#xff1f; 重塑开发模式&#xff0c;加速数字化转型 传统软件开发周期长、成本高、门槛高&…...

iredmail服务器安装步骤详解!如何做配置?

iredmail服务器安全性设置指南&#xff1f;怎么升级邮件服务器&#xff1f; iredmail是一个功能强大的邮件服务器解决方案&#xff0c;它集成了多个开源软件&#xff0c;使您能够快速部署和管理邮件服务。AokSend将逐步引导您完成安装过程&#xff0c;无需深入的编程知识即可轻…...

【vue深入学习第1章】Vue.js 中的 Ajax 处理:vue-resource 库的深度解析

在现代前端开发中&#xff0c;Ajax 请求是与后端进行数据交互的关键技术。Vue.js 作为一个渐进式 JavaScript 框架&#xff0c;提供了多种方式来处理 Ajax 请求&#xff0c;其中 vue-resource 是一个较为常用的库。尽管 vue-resource 在 Vue 2.x 之后不再是官方推荐的 Ajax 处理…...

JDK新特性(Lambda表达式,Stream流)

Lambda表达式&#xff1a; Lambda 表达式背后的思想是函数式编程&#xff08;Functional Programming&#xff09;思想。在传统的面向对象编程中&#xff0c;程序主要由对象和对象之间的交互&#xff08;方法调用&#xff09;构成&#xff1b;而在函数式编程中&#xff0c;重点…...

【ARM】MDK-服务器与客户端不同网段内出现卡顿问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 记录不同网段之间的请求发送情况以及MDK网络版license文件内设置的影响。 2、 问题场景 客户使用很久的MDK网络版&#xff0c;在获取授权时都会出现4-7秒的卡顿&#xff0c;无法对keil进行任何操作&#xff0c;彻底…...

c++树(一)定义,遍历

目录 树的定义 树的基本术语 树的初始起点&#xff1a;我们定义为根 树的层次&#xff1a; 树的定义&#xff1a; 树的性质 性质1&#xff1a; 性质2&#xff1a; 树形结构存储的两种思路 树的遍历模板 树上信息统计方式1-自顶向下统计 树上信息统计方式2-自底向上统…...

YOLOv5和LPRNet的车牌识别系统

车牌识别系统 YOLOv5和LPRNet的车牌识别系统结合了深度学习技术的先进车牌识别解决方案。该系统整合了YOLOv5目标检测框架和LPRNet文本识别模型 1. YOLOv5目标检测框架 YOLO是一种先进的目标检测算法&#xff0c;以其实时性能和高精度闻名。YOLOv5是在前几代基础上进行优化的…...

内容安全(深度行为检测技术、IPS、AV、入侵检测方法)

1、深度行为检测技术 深度行为检测技术&#xff1a;是一种基于深度学习和机器学习的技术&#xff0c;它通过分析用户在网络中的行为模式&#xff0c;识别异常或潜在威胁行为&#xff0c;从而保护网络安全和内容安全 分类&#xff1a; 深度包检测技术&#xff08;Deep Packet…...

MySQL双主双从实现方式

双主双从&#xff08;MM-SS&#xff09; 前言 避免单一主服务器宕机&#xff0c;集群写入能力缺失 从 1 复制 主1 &#xff0c;从 2 复制 主 2 主 1 复制 主 2&#xff0c;主 2 复制主 1 也就是 主 1 和主 2 互为主从。主1主2互为主从&#xff0c; 是为了以下情景&#xff0c…...

pico+unity手柄和摄像机控制初级设置

1、摄像头配置 摄像头模式、floor是追踪原点类型&#xff08;将根据设备检测到地面的高度来计算追踪原点&#xff09;&#xff0c; Device 模式时&#xff0c;为通常理解的 Eye 模式&#xff0c;不会将根据设备检测到地面的高度来计算追踪原点 选择floor时&#xff0c;修改相…...

vxe-grid 实现配置式form搜索条件 form搜索条件框可折叠 配置式table

文章目录 效果图代码 效果图 代码 <template><div class"app-container"><vxe-grid refxGrid v-bind"gridOptions" v-if"tableHeight" :height"tableHeight"><template #billDate"{ data }"><e…...

(新手)Linux 输入子系统实战教程 —— 02设备信息查询 + 输入事件读取(阻塞 / 非阻塞模式)

Linux 输入子系统实战教程 —— 设备信息查询 输入事件读取&#xff08;阻塞 / 非阻塞模式&#xff09;完整学习文档本文档基于Linux 输入设备事件读取程序编写&#xff0c;包含完整注释源码、核心原理、逐模块解析、真实实验现象、错误原因分析&#xff0c;专为嵌入式 Linux …...

避开SDR通信的‘坑’:我在用Pluto做16QAM传输时遇到的相位偏移和同步问题

避开SDR通信的‘坑’&#xff1a;我在用Pluto做16QAM传输时遇到的相位偏移和同步问题 第一次用Pluto SDR搭建16QAM通信链路时&#xff0c;我盯着屏幕上扭曲的星座图发呆了半小时——理论上完美的16个星点&#xff0c;在实际接收时却像被无形的手揉成了一团毛线。这种挫败感想必…...

JBoltAI视频SOP平台:山东工业“智”变新助力

在国家“十五五”发展规划强调“人工智能”工业融合的背景下&#xff0c;山东省及威海市的工业制造业企业正迎来智能化转型的关键期。山东向量空间人工智能科技有限公司推出的JBoltAI工业数智化SOP管理平台&#xff0c;凭借其独特优势&#xff0c;正成为推动这一转型的重要力量…...

FPGA实战:用Verilog手搓8点FFT核心(附完整代码与仿真对比)

FPGA实战&#xff1a;从零构建8点FFT核心的完整指南 在数字信号处理领域&#xff0c;快速傅里叶变换&#xff08;FFT&#xff09;算法是当之无愧的"瑞士军刀"。作为一名FPGA工程师&#xff0c;我曾在多个项目中需要将FFT算法部署到硬件平台&#xff0c;期间积累了不少…...

Python实战:用WordCloud打造个性化圆形词云图

1. 为什么你需要圆形词云图&#xff1f; 词云图是数据可视化中最直观的展现形式之一。相比传统的柱状图、折线图&#xff0c;词云能更生动地呈现文本数据的核心信息。而圆形词云图在视觉上更加聚焦&#xff0c;特别适合用于社交媒体分析、用户画像展示等场景。比如你要分析微博…...

AudioLDM-S实战教程:为有声书项目批量生成章节过渡音效(含脚本)

AudioLDM-S实战教程&#xff1a;为有声书项目批量生成章节过渡音效&#xff08;含脚本&#xff09; 1. 项目简介 AudioLDM-S是一个专门生成现实环境音效的AI工具&#xff0c;基于audioldm-s-full-v2模型的轻量级Gradio实现。无论你需要电影配音、游戏音效还是助眠白噪音&…...

网页聊天室--测试报告

一.测试目标及测试任务概括验证网页聊天室各模块的功能完整性&#xff0c;确保用户的登录功能&#xff0c;注册功能&#xff0c;以及首页的聊天会话和好友列表&#xff0c;添加好友的功能符合要求。二.测试文档类别版本/配置硬件荣耀MagicBook 14手动测试浏览器Microsoft Edge …...

手把手教你用Materials Studio的Forcite模块模拟水分子吸附(附云母建模技巧)

从零开始掌握Materials Studio水分子吸附模拟&#xff1a;Forcite模块实战指南 1. 分子模拟入门&#xff1a;理解水分子吸附的核心逻辑 分子模拟技术已成为材料科学领域不可或缺的研究工具&#xff0c;而水分子在矿物表面的吸附行为研究更是涉及能源、环境、地质等多个热点方向…...

杰理之数字MIC使用补充【篇】

SFR(JL_ASS->CLK_CON, 0, 2, 3);...

FPGA资源优化指南:use_dsp48和SIMD模式在Vivado中的实战技巧

FPGA资源优化实战&#xff1a;DSP48E的SIMD模式与use_dsp48高阶应用 在5G信号处理、雷达系统等高性能计算场景中&#xff0c;FPGA开发者经常面临资源利用率与计算性能的双重挑战。Xilinx 7系列及UltraScale架构中的DSP48E1/DSP48E2切片作为专用计算单元&#xff0c;其灵活配置…...