java sequence是什么?讓我們一起來了解一下吧!
java sequence是指java程序中的數據庫。sequence是數據庫按特定規則自動增加的數字序列,自動增加因此得出的數據不會出現重復。
sequence主要有以下兩個功能:
1.?它可以作為代理主鍵,唯一識別。
2.?它可以記錄數據庫里的最新變化的語句,并且隨著變化而發生更新。
Sequence的使用方法有:
create?seqence?sequence_name [start?with?n1]???????????----------------->n1到n5都是整數;start?with?生成的第一個n1值[increment?by?n2]?????????----------------->?increment?by?n2?遞增量,可以為正整數或負整數,指明每一次增加多少 [maxvalue?n3|no?maxvalue]?----------------->maxvalue最大值,no?maxvalue用于指定序列沒有上限 [cache?n5|no?cache]???????----------------->cache?用高速緩存中可以預分配的序列號個數,默認是20。?如果緩存中的序列號沒有用完就關閉數據庫等其它原因。
java中實現sequence,以Mysql為例:
package?sequence; ? import?java.util.HashMap; import?java.util.Map; import?java.sql.SQLException; ? /** *?@des:?Java實現的Sequence工具 */ public?class?SequenceUtils?{ ????private?static?SequenceUtils?_instance?=?new?SequenceUtils(); ????private?Map?keyMap?=?new?HashMap(20);?//Sequence載體容器 ????private?static?final?int?POOL_SIZE?=?10;??????//Sequence值緩存大小 ? ????/** ?????*?禁止外部實例化 ?????*/ ????private?SequenceUtils()?{ ????} ? ????/** ?????*?獲取SequenceUtils的單例對象 ?????*?@return?SequenceUtils的單例對象 ?????*/ ????public?static?SequenceUtils?getInstance()?{ ????????return?_instance; ????} ? ????/** ?????*?獲取下一個Sequence鍵值 ?????*?@param?keyName?Sequence名稱 ?????*?@return?下一個Sequence鍵值 ?????*/ ????public?synchronized?long?getNextKeyValue(String?keyName)?{ ????????KeyInfo?keyInfo?=?null; ????????Long?keyObject?=?null; ????????try?{ ????????????if?(keyMap.containsKey(keyName))?{ ????????????????keyInfo?=?keyMap.get(keyName); ????????????}?else?{ ????????????????keyInfo?=?new?KeyInfo(keyName,?POOL_SIZE); ????????????????keyMap.put(keyName,?keyInfo); ????????????} ????????????keyObject?=?keyInfo.getNextKey(); ????????}?catch?(SQLException?e)?{ ????????????e.printStackTrace(); ????????} ????????return?keyObject; ????} }
以上就是小編今天的分享了,希望可以幫助到大家。