我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mybatis+mysql 使用存储过程生成流水号的实现代码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mybatis+mysql 使用存储过程生成流水号的实现代码

使用存储过程,在操作数据库时开启事务,避免并发时同时操作造成数据重复

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; 
  
  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;
dao
Integer getFaultNo(Map<String, String> parameterMap);

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mybatis+mysql 使用存储过程生成流水号的实现代码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于mybatis的java代码生成存储过程

问题:  项目中目前使用mybatis操作数据库,使用插件(mybatis-generator)自动生成代码,对于增改查,使用存储过程实现了一版本,方便使用。       insert代码生成器用法: insert_code_generator( in_var
基于mybatis的java代码生成存储过程
2020-03-08

mybatis调用存储过程的实例代码

一、提出需求  查询得到男性或女性的数量, 如果传入的是0就女性否则是男性二、准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name va
2023-05-31

Mybatis调用MySQL存储过程的简单实现

1.存储过程的简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该
2023-05-31

mysql 使用存储过程实现树节点的获取方法

如图:表数据这样的一棵树,如何获取“高寅瑞”下的所有节点(一条sql语句是肯定搞不定的) 通过存储过程来写DELIMITER // CREATE FUNCTION `getChildLst`(rootId INT)RETURNS varch
2022-05-30

MySQL存储过程的创建使用以及实现数据快速插入

目录一,存储过程介绍二,存储过程的优缺点 三,存储过程的创建与调用3.1,存储过程中的常用语法及参数3.2,存储过程的使用四,存储过程中的变量及使用细则4.1,变量定义4.2,变量赋值4.3,用户变量的使用4.4,存储过程的一些常用查看命令
2023-03-09

MySQL数据篇 (一)存储过程实现简单的数据修改及事务的使用

1、需求,手动给会员新增京币,并且添加分配日志,返回修改是否成功CREATE DEFINER=`jszapi`@`%` PROCEDURE `p_allot_user_coin`(IN `_member_id` int,IN `_coin` int,OUT `
MySQL数据篇 (一)存储过程实现简单的数据修改及事务的使用
2016-01-24

MySQL存储过程创建使用及实现数据快速插入的方法是什么

本文小编为大家详细介绍“MySQL存储过程创建使用及实现数据快速插入的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL存储过程创建使用及实现数据快速插入的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
2023-03-10

编程热搜

目录