吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3114|回复: 6
收起左侧

[Java 转载] 刚开始学习一个编码自增代码

[复制链接]
xianligong 发表于 2019-1-8 10:03
[Java] 纯文本查看 复制代码
public static void main(String[] args) {
		 String Orderno = null;
	        String maxOrderno = "NO201808300003"; // 从数据库查询出的最大编号
	        System.out.println("maxOrderno=" + maxOrderno);
	        SimpleDateFormat format = new SimpleDateFormat("yyyy"); // 时间字符串产生方式yyyyMMdd
	        String uid_pfix = "NO" + format.format(new Date()); // 组合流水号前一部分,NO+时间字符串,如:NO20160126
	        System.out.println("time=" + format.format(new Date()));
	        if (maxOrderno != null && maxOrderno.contains(uid_pfix)) {
	            String uid_end = maxOrderno.substring(10, 14); // 截取字符串最后四位,结果:0001
	            System.out.println("uid_end=" + uid_end);
	            int endNum = Integer.parseInt(uid_end); // 把String类型的0001转化为int类型的1
	            System.out.println("endNum=" + endNum);
	            int tmpNum = 10000 + endNum + 1; // 结果10002
	            System.out.println("tmpNum=" + tmpNum);
	            Orderno = uid_pfix + Tools.subStr("" + tmpNum, 1);// 把10002首位的1去掉,再拼成NO201601260002字符串
	        } else {
	            Orderno = uid_pfix + "0001";
	        }
	        System.out.println(Orderno);
	}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

nygula 发表于 2019-1-8 10:54
为什么不用存储过程.如果并发两个查询都查到NO201808300003怎么办
oneofzero 发表于 2019-1-11 17:27
reeye 发表于 2019-2-21 18:23
神秘来宾 发表于 2019-2-21 19:06 来自手机
楼主比我厉害多了
seedhk 发表于 2019-2-22 10:50
尽量别用存储过程吧..这玩意写起来累 看起来更累
liangyun 发表于 2019-3-8 15:52
把NO去掉再加一不行吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 03:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表