博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java生成流水号案例_java中生成流水号的一个例子(使用关系型数据库)
阅读量:5106 次
发布时间:2019-06-13

本文共 1838 字,大约阅读时间需要 6 分钟。

importjava.math.BigDecimal;importorg.quickbundle.project.RmProjectHelper;importorg.quickbundle.project.common.vo.RmCommonVo;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;/*** 流水号生成器

*@authorAdministrator

**/

public classSeriaNumberGenerator {

Logger logger= LoggerFactory.getLogger(SeriaNumberGenerator.class);private static int MAX_VALUE=9999;private static int MIN_VALUE = 1;/*** 根据业务标识符取到下一个流水号

*@parambusinessCode

*@return

*/

public synchronizedString getNextVal(String businessCode){intcurrentValue ;intnextValue ;

RmCommonVo comonVo=null;try{

comonVo= RmProjectHelper.getCommonServiceInstance().doQueryForObject("select CURRENT_VALUE from SERIAL_NUMBER WHERE KEY =‘"+businessCode+"‘");

}catch( org.springframework.dao.EmptyResultDataAccessException ex){

logger.error("结果集为空,SpringJdbc抛出异常,不影响程序执行...");

}//该key不存在(存放进去)

if(comonVo == null ||comonVo.size()== 0){

currentValue=MIN_VALUE;

nextValue= currentValue +1;

RmProjectHelper.getCommonServiceInstance().doUpdate(" insert into SERIAL_NUMBER (KEY, CURRENT_VALUE ) VALUES (‘"+businessCode+"‘,‘"+nextValue+"‘)");

}// else{

currentValue= ((BigDecimal)comonVo.get("CURRENT_VALUE")).intValue();//已经到达最大值

if(MAX_VALUE==currentValue){

nextValue=MIN_VALUE;

}else{

nextValue= currentValue+1;

}

RmProjectHelper.getCommonServiceInstance().doUpdate("update SERIAL_NUMBER set CURRENT_VALUE=‘"+nextValue+"‘ WHERE KEY=‘"+businessCode+"‘");

}

String finalValue= this.formatString(currentValue);returnfinalValue ;

}publicSeriaNumberGenerator(){

}/*** 将数字转换为字符串(当不足4位时高位补0)

*@paraminput

*@return

*/

public String formatString(intinput){

String result ;//大于1000时直接转换成字符串返回

if(input > 1000){

result= input+"";

}else{//根据位数的不同前边补不同的0

int length = (input +"").length();if(length == 1){

result= "000"+input;

}else if(length ==2){

result= "00"+input;

}else{

result= "0"+input;

}

}returnresult;

}

}

转载地址:http://tqudv.baihongyu.com/

你可能感兴趣的文章
iframe跨域与session失效问题
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
Hash和Bloom Filter
查看>>
SQL Server获取月度列表
查看>>
python常用函数
查看>>
python 描点画圆
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
pycharm 如何设置方法调用字体颜色
查看>>
VUE源码解析心得
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
整体二分——[Poi2011]Meteors
查看>>
数据库3
查看>>
delphi之事件
查看>>
windows server 2008 r2 安装
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>