这就是知识点

  今天一个朋友问我,博客是什么?

  我说:这个。。。是IT开发者发表的技术篇的地方。

  说:不懂。

  我说:你可以看看我的博客,里面有我写的一些"义正言辞"的看法。

  说:不感兴趣。

  我。。。。。

  题外话了,开始正题吧。今天就说一下id、编号生成方式吧。

  一般的id、编号都会以 14、16、32、64位的数字组成

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class IdGen implements IdGenerator, SessionIdGenerator {
 
    private static SecureRandom random = new SecureRandom();
     
    /**
     * 封装JDK自带的UUID, 通过Random数字生成, 中间无-分割.
     */
    public static String uuid() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }
     
    /**
     * 使用SecureRandom随机生成Long.
     */
    public static long randomLong() {
        return Math.abs(random.nextLong());
    }
 
    /**
     * 基于Base62编码的SecureRandom随机生成bytes.
     */
    public static String randomBase62(int length) {
        byte[] randomBytes = new byte[length];
        random.nextBytes(randomBytes);
        return Encodes.encodeBase62(randomBytes);
    }
     
    /**
     * Activiti ID 生成
     */
    @Override
    public String getNextId() {
        return IdGen.uuid();
    }
 
    @Override
    public Serializable generateId(Session session) {
        return IdGen.uuid();
    }
     
    public static void main(String[] args) {
        System.out.println(IdGen.uuid());
        System.out.println(IdGen.uuid().length());
        System.out.println(new IdGen().getNextId());
        for (int i=0; i<1000; i++){
            System.out.println(IdGen.randomLong() + "  " + IdGen.randomBase62(5));
        }
    }
 
}

  当然为了避免重复性,用的最多的还是 时间戳 20170614213721 yyyyMMddhhmmss

  而对于用户来说id是没有任何作用,id是不会出现在页面的。

  有人说,1、2、3 的编号。。

  首先用1、2无非就是为了显示的时候有个编号,但在公司写这个是会被开的。

  其次,要显示1、2等类似的顺序,一般都会用foreach 的index 来显示行号。

  最后,编号一般为 一些计划、文件、项目的编号,所以编号有一定的意义。所以这类的编号,一般的会在时间戳的基础上加上 "类型" 列如:计划 "JH" ,文件 "WJ"

  

1
2
3
4
5
6
7
8
9
10
11
12
public class GenerateNumber {
    /**
     * @param 模块module 如:事项 SX ,计划 JH
     * @return module + yyyyMMddhhmmss
     * */
    public static String getDealformNumber(String module){
        Date curDate = new Date(System.currentTimeMillis());
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddhhmmss");
        String curTime = formatter.format(curDate);    
        return module + curTime;
    }
}

  以上两种都可以作为基础,在这个基础上可以生成自己想要的位数id、编号

  或许这篇太短了,那就问几个问题吧:

    1.在存在表中改变字段的类型 ,比如 varchar2(20) -->varchar2(40) 的sql语句

    2.在存在表中增加一个字段 ,比如 name varchar2(10)

 

  最后,来一句经典的台词,源自《拜托了 冰箱》

  女:你现在为什么不珍惜你自己

  男:我现在不珍惜我自己,是因为当初我没有好好珍惜你。

 

 

  

  

 

  

posted @   Nausicaä  阅读(287)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
点击右上角即可分享
微信分享提示