zoukankan      html  css  js  c++  java
  • 这就是知识点

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

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

      说:不懂。

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

      说:不感兴趣。

      我。。。。。

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

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

      

    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"

      

    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)

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

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

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

      

      

      

  • 相关阅读:
    opensuse字符和图形界面
    Eclipse编辑器小手段
    切换运行时用户以及用户组
    PHP安装和配置
    Linux程序资源限制简述
    test2234343
    找回Svn和Git不见的文件图标
    SourceInsight使用技巧
    Javascript数组使用方法
    MySQL安装和配置
  • 原文地址:https://www.cnblogs.com/hxb2016/p/7011208.html
Copyright © 2011-2022 走看看