主鍵生成策略

2021-10-09 10:59:21 字數 1350 閱讀 2906

#2020雲棲大會#阿里雲海量offer來啦!投簡歷、贏阿里雲限量禮品及阿里雲aca認證免費考試資格!>>>

主鍵生成策略

主鍵分類

生成策略

0 1 主鍵分類

主鍵可分為自然主鍵和**主鍵

什麼是自然主鍵?

什麼是**主鍵?

在實際開發當中一般採用那種主鍵?

採用**主鍵。因為主鍵是唯一的標識,不方便直接修改,如果主鍵就是物件的屬性比如學生學號作為主鍵,如果記錄時輸入錯了則不好去修改有悖於開閉原則。採用**主鍵物件的所有屬性都不是主鍵,主鍵由**自動產生一串唯一的標識,那麼所有屬性都是普通字段可以方便修改

02 主鍵生成策略

既然要用**主鍵,是屬性之外的,所以交給程式自動生成而不是使用者輸入

一般這個自動生成交給資料庫的自動增長來生成唯一標識

在hibernate當中,為了減少程式的編寫,內部提供了多種的主鍵生成策略

increment自動增加策略(整型)

查出最大的主鍵然後給他加1,就是新插入記錄的主鍵,由程式設定不支援多執行緒

identity

自動增長(整型)

使用是資料庫底層的增長策略,由資料庫設定

sequence

自動增長

(整型)

採用序列的方式

uuid(字元)

使用hibernate中隨機生成字串的主鍵

native

本地策略

在identity和sequence自動切換

assigned

hibernate不會幫你管理主鍵自己手動呼叫或通過程式來去生成主鍵,通過手動設定

mysql自動增長用的是identity,oracle的支援的是sequence。一般使用增長策略用native就好

不僅僅是乙個碼

主鍵生成策略

一共是13種,其中包括native native 對於 oracle 採用 sequence 方式,對於mysql 和 sql server 採用identity 自增主鍵生成機制 native就是將主鍵的生成工作交由資料庫完成,hibernate不管 很常用 uuid 採用128位的uuid演算法...

主鍵生成策略

原文 generatedvalue,jpa通用策略生成器 jpa提供的四種標準用法為table,sequence,identity,auto.table 使用乙個特定的資料庫 來儲存主鍵。sequence 根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列。id generatedvalue st...

主鍵生成策略

1 自動增長identity 適用於mysql db2 ms sql server,採用資料庫生成的主鍵,用於為long short int型別生成唯一標識 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援自增字段,要設定sequence...