mybatis+mysql 使用存储过程生成流水号的实现代码
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSerialNo`(IN tsCod
千家信息网最后更新 2025年11月12日mybatis+mysql 使用存储过程生成流水号的实现代码
使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSerialNo`(IN tsCode VARCHAR(50),OUT result VARCHAR(200) )BEGIN DECLARE tsValue VARCHAR(50); DECLARE tdToday VARCHAR(20); DECLARE nowdate VARCHAR(20); DECLARE tsQZ VARCHAR(50); DECLARE t_error INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; START TRANSACTION; /* UPDATE sys_sno SET sValue=sValue WHERE sCode=tsCode; */ SELECT sValue INTO tsValue FROM sys_sno WHERE sCode=tsCode; SELECT sQz INTO tsQZ FROM sys_sno WHERE sCode=tsCode ; -- 因子表中没有记录,插入初始值 IF tsValue IS NULL THEN SELECT CONCAT(DATE_FORMAT(NOW(),'%y%m'),'0001') INTO tsValue; UPDATE sys_sno SET sValue=tsValue WHERE sCode=tsCode ; SELECT CONCAT(tsQZ,tsValue) INTO result; ELSE SELECT SUBSTRING(tsValue,1,4) INTO tdToday; SELECT CONVERT(DATE_FORMAT(NOW(),'%y%m'),SIGNED) INTO nowdate; -- 判断年月是否需要更新 IF tdToday = nowdate THEN SET tsValue=CONVERT(tsValue,SIGNED) + 1; ELSE SELECT CONCAT(DATE_FORMAT(NOW(),'%y%m') ,'0001') INTO tsValue ; END IF; UPDATE sys_sno SET sValue =tsValue WHERE sCode=tsCode; SELECT CONCAT(tsQZ,tsValue) INTO result; END IF; IF t_error =1 THEN ROLLBACK; SET result = 'Error'; ELSE COMMIT; END IF; SELECT result ; END;daoInteger getFaultNo(MapparameterMap);
xml
CALL GetSerialNo(?,?)
调用
MapparameterMap = new HashMap (); parameterMap.put("tsCode", "a"); parameterMap.put("result", "-1"); faultMapper.getFaultNo(parameterMap); // insert 故障日志 (主表) if (!parameterMap.get("result").equals("-1") && !parameterMap.get("result").equals("Error")) { //成功 } else { throw new RuntimeException(); }
总结
以上所述是小编给大家介绍的mybatis+mysql 使用存储过程生成流水号的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
过程
存储
数据
代码
流水
流水号
生成
成功
事务
同时
因子
年月
故障
数据库
日志
疑问
网站
帮助
支持
更新
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
应用软件服务包含软件开发吗
网络安全风险评估调研
软件开发个体户需要上税吗
上海惊蛰网络技术有限公司
杭州施云互联网科技
vfp数据库表建立关联的步骤
数据库测试TPC-DS
原神小米服务器和官服
岑智勇互联网科技日进
数据库优劣
湖北翔鹏网络技术有限公司
亿咖通安卓软件开发
升望网络技术有限公司
沈阳手机软件开发人才网
PC做上网管理服务器
查数据库返回map
网络技术的主要研究方法
idc网络技术方案
toc 网络安全
播放家庭教育与网络安全
如何安全拷贝内网数据库
软件开发技术方案策划
关系数据库模式包括关系模式
寻仙数据库
数据库发展中的三个
麻将软件开发违法么
网络安全杭电和重邮
蜂泰互联网科技有限公司
服务器的机器码是什么意思
服务器怎么清除家