mybatis+mysql 使用存储过程生成流水号的实现代码
发表于:2024-09-30 作者:千家信息网编辑
千家信息网最后更新 2024年09月30日,使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSerialNo`(IN tsCod
千家信息网最后更新 2024年09月30日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安全错误
数据库的锁怎样保障安全
大连诚信汇软件开发有限公司
营销数据库的做法
数据库技术的主要特性
pb9.0连接数据库
因为与服务器无法
数据库日期字段省略年月日
服务器和录像机什么区别
网络安全分为等级
服务器托管服务不利因素
世纪互联采用哪家公司的服务器
重庆塔式服务器怎么样
政府网站网络安全工作方案
网络安全远程技术检测单位
平板当文件服务器
上市互联网焦点科技
学软件开发需要多少费用
深信服视频云服务器
启动网络安全应急预案
php中把图片存储在数据库
农业企业数据库
大学生网络安全电影
哪里租服务器好
首都网络安全日宣传片
java 服务器推送
软件开发管理最注重
计算机网络安全科技馆拍照
数据库用什么磁盘阵列
上海计算机网络技术专业调研
松江区网络软件开发定制要求
网络安全专业反间谍