2.8 id和順序號

  整數id和字符串id都是很常用的,數據庫也有工具提供支持。我們也可以通過程序自動生成,效率也很高,如果:
  synchronized (this) {
    maxSeqNo = new Integer(curMaxId++);
  }
  //第一次使用需要讀取數據庫的最大值
  但是我們使用的環境多種多樣,比如在集羣、多數據庫(後臺程序定時同步數據)的情況下有的方法就不適用,而且,開發人員也不應該關心底層的具體實現方式,因此需要我們封裝標準的整數id(IntId)、字符串id(StringId)的生成類。我們可以根據實際情況靈活配置。
  序列號也是另外一種id,由於有時候需要和日期或者部門綁定,因此我們也提供一個序列號的生成類(Serial)。

  下面是對外公開的方法:
  /**
   * 通過條件生成順序號
   * @param tableName     表名(類別)
   * @return              生成順序號
   * @throws java.lang.Exception   執行失敗
   */
  static public Integer getIdentity(String tableName) throws Exception

  /**
   * 取下一個字符串id
   * @param tableName     表名(類別)
   * @return      下一個字符串id
   * @throws java.lang.Exception
   */
  static public Integer getNextStringId(String tableName) throws Exception

  /**
   * 通過條件生成序列號
   * @param serialName    序列號名字(模板)
   * @param depNO         部門
   * @param date          時間
   * @return              生成序列號
   * @throws java.lang.Exception   執行失敗
   */
  static public String getSerialNO(String serialName, String depNO, String date) throws Exception

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章