oracle 指定类型和指定位数创建序列号

在这里插入图片描述

文章目录

          • 一、脚本部分
            • 1. 表结构
            • 2. 函数
          • 二、代码部分
            • 2.1. xml
            • 2.2. 接口
            • 2.3. api接口
            • 2.4. api实例
            • 2.5. 控制层
          • 三、测试
            • 3.1. 效果图

一、脚本部分
1. 表结构

有注释

-- Create table
create table LDMAXNO
(NOTYPE  VARCHAR2(17) not null,NOLIMIT VARCHAR2(12) not null,MAXNO   INTEGER not null
);
-- Add comments to the table 
comment on table LDMAXNOis '产生最大的流水号,所有的号码从1开始';
-- Add comments to the columns 
comment on column LDMAXNO.NOTYPEis '含义描述:1、号码类型';
comment on column LDMAXNO.NOLIMITis '含义描述:1、号码限制条件';
comment on column LDMAXNO.MAXNOis '含义描述:1、当前最大值';
-- Create/Recreate primary, unique and foreign key constraints 
alter table LDMAXNOadd constraint PK_LDMAXNO primary key (NOTYPE, NOLIMIT);
2. 函数
  create or replace function CreateMaxNos(cNoType  in ldmaxno.notype%type,cNoLimit in ldmaxno.nolimit%type)return integer ispragma autonomous_transaction;tMaxNo integer := 0; --初始化赋值等于0,定义返回变量begin--最大数加1update LDMaxNoset MaxNo = MaxNo + 1where NoType = cNoTypeand NoLimit = cNoLimitReturning MaxNo Into tMaxNo; --取出最大数If (Sql%Notfound) then--第一次向数据库中插入最大数为 1 的记录Insert Into LDMaxNo(NOTYPE, NOLIMIT, MAXNO)values(cNoType, cNoLimit, 1);tMaxNo := 1;End If;commit;return(tMaxNo); --返回结果
end CreateMaxNos;
/
二、代码部分
2.1. xml

DullMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gblfy.business.mapper.DullMapper"><select id="getMaxNo" resultType="java.lang.String">select createmaxno(#{cNoType},#{cNoLength}) from dual</select>
</mapper>
2.2. 接口

DullMapper.java

package com.gblfy.business.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;public interface DullMapper extends BaseMapper {/*** 功能:产生指定长度的流水号,一个号码类型一个流水* @param cNoType 流水号的类型* @param cNoLength 流水号的长度* @return 返回产生的流水号码*/String getMaxNo(@Param("cNoType") String cNoType, @Param("cNoLength") int cNoLength);
}
2.3. api接口
package com.gblfy.business.service;public interface SysMaxNoService {/*** 功能:产生指定长度的流水号,一个号码类型一个流水** @param cNoType   流水号的类型* @param cNoLength 流水号的长度* @return 返回产生的流水号码*/String createMaxNo(String cNoType, int cNoLength);
}
2.4. api实例

package com.gblfy.business.service.impl;import com.gblfy.business.mapper.DullMapper;
import com.gblfy.business.service.SysMaxNoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.math.BigInteger;@Service
public class SysMaxNoServiceImpl implements SysMaxNoService {private final static Logger logger = LoggerFactory.getLogger(SysMaxNoServiceImpl.class);@Resourceprivate DullMapper dullMapper;/*** 功能:产生指定长度的流水号,一个号码类型一个流水** @param cNoType   流水号的类型* @param cNoLength 流水号的长度* @return 返回产生的流水号码*/@Overridepublic String createMaxNo(String cNoType, int cNoLength) {if ((cNoType == null) || (cNoType.trim().length() <= 0) ||(cNoLength <= 0)) {logger.info("NoType长度错误 {} NoLength错误", cNoType, cNoLength);return null;}cNoType = cNoType.toUpperCase();String tReturn = "";String cNoLimit = "SN";BigInteger tMaxNo = new BigInteger("0");tReturn = cNoLimit;try {String result = dullMapper.getMaxNo(cNoType, cNoLength);tMaxNo = new BigInteger(result);} catch (Exception e) {e.printStackTrace();logger.info("生成流水号出现异常,请核实!");}String tStr = tMaxNo.toString();//将生成的流水号进行加工处理tStr = LCh(tStr, "0", cNoLength);tReturn = tStr.trim();return tReturn;}/*** 将生成的流水号进行加工处理* <p>* 1.判断是否满足指定长度,如果不满足前面用0来补位* 2.将生成的流水号进行去空格处理* 3.将最终的流水号进行字符串拼接* </P>** @param sourString* @param cChar* @param cLen* @return*/private String LCh(String sourString, String cChar, int cLen) {int tLen = sourString.length();int i, iMax;String tReturn = "";if (tLen >= cLen) {return sourString;}//1.判断是否满足指定长度,如果不满足前面用0来补位iMax = cLen - tLen;for (i = 0; i < iMax; i++) {tReturn += cChar;}//2.将生成的流水号进行去空格处理//3.将最终的流水号进行字符串拼接tReturn = tReturn.trim() + sourString.trim();return tReturn;}
}
2.5. 控制层
package com.gblfy.business.controller;import com.gblfy.business.service.SysMaxNoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;/*** 生成指定类型+位数的流水号** @Author gblfy* @Date 2022-05-16 20:13**/
@RestController
public class SysMaxNoController {@Autowiredprivate SysMaxNoService maxNoService;/*** 生成指定类型+位数的流水号** @param cNoType* @param cNoLength* @return*/@GetMapping("/generate/serial/number")public String generateSerialNumber(@RequestParam(name = "cNoType", required = false, defaultValue = "cNoType") String cNoType,@RequestParam int cNoLength) {return maxNoService.createMaxNo(cNoType, cNoLength);}
}
三、测试
3.1. 效果图

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解读Flink资源管理机制

作者&#xff1a;宋辛童&#xff08;五藏&#xff09;整理&#xff1a;王文杰&#xff08;Flink 社区志愿者&#xff09; 摘要&#xff1a;本文根据 Apache Flink 系列直播整理而成&#xff0c;由阿里巴巴高级开发工程师宋辛童分享。文章主要从基本概念、当前机制与策略、未来发…

EasyExcel 实现模板导出、模板导入分析功能

文章目录0.POM依赖1.导出模板实现2.导入模板并分析实现3.git源码0.POM依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency>…

金蝶云拿下客户满意度第一,中国SaaS企业觅得“后发先至”良机

本月&#xff0c;全球SaaS行业迎来了开年第一份重磅奖项的揭晓&#xff1a;由国际知名研究机构IDC颁发的SaaS行业全球客户满意度奖&#xff08;CSAT大奖&#xff09;。 该奖项基于IDC SaaSPath针对全球约2000家组织机构中高层的调研&#xff0c;综合30多项客户满意度指标&…

一名创业者浴火涅磐的自白——对话阿里云MVP孙琦

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 简介&#xff1a; 孙琦喜欢调侃自己为“一个失败的创业者”。跟他聊过之后&#xff0c;我却发现他跟以往的创业者不同&#x…

mysql 指定类型和指定位数创建序列号

文章目录一、脚本部分1. 表结构2. 函数二、代码部分2.1. xml2.2. 接口2.3. api接口2.4. api实例2.5. 控制层三、测试3.1. 效果图一、脚本部分 1. 表结构 有注释 CREATE TABLE ldmaxno (notype varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 号码…

系统架构设计师 - ESB 企业服务总线

文章目录定义功能定义 传统中间件技术和WEB、XML相结合的产物&#xff0c;主要用以异构系统的集成。具备复杂数据的传输能力&#xff0c;支持基于内容的消息路由、过滤&#xff0c;并提供一系列标准的接口。 功能 服务位置透明、 消息路由、 消息增强、 消息格式转换、 传输…

阿里云助力完美日记半年内系统吞吐量提升50倍

阿里云 Redis 直播地址 近年来&#xff0c;完美日记的“小黑钻口红”“动物眼影盘”等爆款彩妆出现在了越来越多女孩子的化妆台上&#xff0c;完美日记&#xff08;Perfect Diary&#xff09;是由逸仙电商在2017年推出的彩妆品牌&#xff0c;凭借着高颜值和性价比&#xff0c;完…

唏嘘!程序员,你的年底KPI完不成的原因找到了!

加班是每个互联网人不愿面对而却又绕不过去的话题&#xff0c;就连面试时“你怎么看待加班”的问题都成了必答题。现在临近年底&#xff0c;大家都在努力冲业绩&#xff0c;期待拿更多的年终奖&#xff0c;回家过个“富足年”。年底冲业绩&#xff0c;势必会增加我们的工作量&a…

阿里云SAG2.0发布,助力企业全球互联

2016年以来&#xff0c;阿里云洛神云网络陆续发布了高速通道、VPN网关、云企业网CEN&#xff08;cloud enterprise network&#xff09;、SAG&#xff08;smart access gateway&#xff09;等混合云网络产品&#xff0c;基于阿里云全球核心网络不断扩展云网络的应用场景&#x…

云原生存储详解:容器存储与K8s存储卷

作者 | 阚俊宝 阿里云技术专家 导读&#xff1a;云原生存储详解系列文章将从云原生存储服务的概念、特点、需求、原理、使用及案例等方面&#xff0c;和大家一起探讨云原生存储技术新的机遇与挑战。本文为该系列文章的第二篇&#xff0c;会对容器存储的相关概念进行讲述&#x…

阿里彻底拆中台了!

作者| Mr.K来源| 技术领导力(ID&#xff1a;jishulingdaoli)头图 | 付费下载于视觉中国老K独家了解到&#xff0c;张勇近期在阿里内网发布文章表示&#xff0c;他对目前阿里的中台并不满意&#xff0c;他直言道&#xff0c;现在阿里的业务发展太慢&#xff0c;要把中台变薄&…

漫画通信:有了它,终于可以放心买买买了

原文链接 本文为云栖社区原创内容&#xff0c;未经允许不得转载。

企业微信小程序~开启线上真机调试模式

文章目录一、概念理解1. 概念简述2. 线上真机调试前提二、线上真机调试流程2.1.开发小程序2.2.上传小程序2.3.补充小程序发布信息2.4.程序提交审核2.5.发布小程序2.6. 企微后台应用关联小程序2.7. 小程序发布流程三、开启调试模式3.1. 扫描二维码3.2. 打开多场景调试3.3. 进入调…

EasyExcel 设置单元格格式为 文本

文章目录1.全局设置标题和内容字体格式2.个性化设置某一列格式3.无内容时 &#xff08;预制模板&#xff0c;流形式写会&#xff09;1.全局设置标题和内容字体格式 通过WriteCellStyle 的dataFormat属性和BuiltinFormats指定字体格式 这种单元格有内容时字体才会生效&#xff…

云原生人物志 | Pulsar翟佳:社区的信任最重要

云原生已无处不在&#xff0c;《云原生人物志》是CSDN重磅推出的系列原创采访&#xff0c;我们关注云原生中每一个技术人、公司的身影。知微见著&#xff0c;窥见云原生价值与趋势。编辑 | 宋 慧出品 | CSDN云计算头图 | 付费下载于视觉中国

田亮:坚信大数据的变革力量

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 简介&#xff1a; 我和田亮的交流耗时较久&#xff0c;甚至用上了他出差的所有碎片时间&#xff0c;而他的回答始终谨慎、认真…

Easyexcel异常处理:getOutputStream() has already been called for this response

文章目录异常日志源码位置异常原因异常前代码调整后代码异常日志 java.lang.IllegalStateException: getOutputStream() has already been called for this responseat org.apache.catalina.connector.Response.getWriter(Response.java:582) ~[tomcat-embed-core-9.0.17.jar!…

玩转DB里的数据—阿里云DMS任务编排之简介和实操

1.任务编排介绍 数据库是企业IT系统里的重要基础设施&#xff0c;里面存储了大量有价值的数据资产&#xff0c;如&#xff1a;交易数据、客户数据、订单数据&#xff0c;等等。其实&#xff0c;数据库在企业里一直扮演着一个数据生产者&#xff08;Producer&#xff09;的角色…

用户隐私保护指引设置~参考案例

文章目录1. 搜索小程序2. 进入小程序详情3. 更多资料4. 小程序隐私指引5. 具体参考事项1. 搜索小程序 这里以腾讯文档进行演示 2. 进入小程序详情 3. 更多资料 4. 小程序隐私指引 5. 具体参考事项 以实际的情况为准&#xff0c;这里只是演示

在存储器的层次结构里,谁最快,谁最贵,谁最大?

来源 | 小林coding责编 | 寇雪芹头图 | 下载于视觉中国前言大家如果想自己组装电脑的话&#xff0c;肯定需要购买一个 CPU&#xff0c;但是存储器方面的设备&#xff0c;分类比较多&#xff0c;那我们肯定不能只买一种存储器&#xff0c;比如你除了要买内存&#xff0c;还要买硬…