平邑建设局网站,关于建设公司网站的请示,滨州北京网站建设价格低,山东鑫泰建设集团网站文章目录一、脚本部分1. 表结构2. 函数二、代码部分2.1. xml2.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 …
文章目录一、脚本部分1. 表结构2. 函数二、代码部分2.1. xml2.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 version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.gblfy.business.mapper.DullMapperselect idgetMaxNo resultTypejava.lang.Stringselect 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. 效果图