hibernate 自動生成表結構

2021-09-01 12:13:08 字數 1051 閱讀 2447

hibernate 自動生成表結構 方法:

在xx.cfg.xml 裡面,或者你用spring 配置的檔案,需要屬性

value 值:validate ,create ,create-drop,update

create:

每次載入hibernate時都會刪除上一次的生成的表,然後根據你的model類再重新來生成新錶,哪怕兩次沒有任何改變也要這樣執行,這就是導致資料庫表資料丟失的乙個重要原因。

create-drop :

每次載入hibernate時根據model類生成表,但是sessionfactory一關閉,表就自動刪除。

update:

最常用的屬性,第一次載入hibernate時根據model類會自動建立起錶的結構(前提是先建立好資料庫),以後載入hibernate時根據 model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到伺服器後,表結構是不會被馬上建立起來的,是要等應用第一次執行起來後才會。

validate :

每次載入hibernate時,驗證建立資料庫表結構,只會和資料庫中的表進行比較,不會建立新錶,但是會插入新值。

再說點「廢話」:

當我們把hibernate.hbm2ddl.auto=create時hibernate先用hbm2ddl來生成資料庫schema。

當我們把hibernate.cfg.xml檔案中hbm2ddl屬性注釋掉,這樣我們就取消了在啟動時用hbm2ddl來生成資料庫schema。通常只有在不斷重複進行單元測試的時候才需要開啟它,但再次執行hbm2ddl會把你儲存的一切都刪除掉(drop)---- create配置的含義是:「在建立sessionfactory的時候,從scema中drop掉所以的表,再重新建立它們」。

注意,很多hibernate新手在這一步會失敗,我們不時看到關於table not found錯誤資訊的提問。但是,只要你根據上面描述的步驟來執行,就不會有這個問題,因為hbm2ddl會在第一次執行的時候建立資料庫schema,後續的應用程式重啟後還能繼續使用這個schema。假若你修改了對映,或者修改了資料庫schema,你必須把hbm2ddl重新開啟一次。

hibernate自動建表

hibernate自動建立表的優缺點 一 優點 1 自動建立新錶 2 自動建立新字段 3 自動修改字段型別 二 缺點 1 不會自動刪除表 2 不會自動刪除字段 3 自動建立的新字段只能是在最後。hibernate支援自動建表,在開發階段很方便,可以保證hbm與資料庫表結構的自動同步。一 通過hibe...

Hibernate自動建表

hibernate支援自動建表功能,需在hibernate.xml檔案中新增以下屬性 update 1 update 自動根據模型物件來更新表結構,啟動web應用程式時會自動檢查資料庫,並保證資料庫與模型物件關係一致。2 create 啟動web應用程式時,自動刪除原來的表,新建所有的表。3 cre...

Hibernate主鍵自動生成的幾種常用型別

1.assigned 主鍵由資料庫內部生成,無需hibernate干預。2.hilo 需要額外資料庫表儲存主鍵生成歷史狀態。3.increment 在例項中維持乙個變數,以儲存當前最大值。多例項訪問時可能會出錯。4.identity 採用資料庫提供的生成機制,如sql server mysql中自增...