mybatis+mysql 使用存储过程生成流水号的实现代码
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSerialNo`(IN tsCod
千家信息网最后更新 2025年01月31日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安全错误
数据库的锁怎样保障安全
中国地调局调整系数数据库
守望先锋怎么进其他服务器
网络技术创新能力
测试数据库安全策略
bms软件开发视频
网络安全书法作品情况简介
网络安全宣传周活动答题
用什么软件开发进销存软件
泥巴潭网络技术
软件开发周期文档下载
软件开发工具重点
软件开发项目中商务谈判技巧
软件开发公司logo设计
相亲软件开发需要多少钱
ai计算服务器的算力
数据库或合并
ios 服务器代码
软件开发基本知识
oracle数据库监控
网络安全黑客攻击事件
网络安全宣传周 税务
服务器开80端口
国际维护网络安全的措施
去中心网络技术
网站做网络安全风险评估报告
网络安全分析方案
甘肃省斯玛特服务器云服务器
科技农业类互联网媒体
法国loc数据库
调查国土数据库标准