(轉)hibernate自動建表的配置

hibernate支持自動建表,在開發(fā)階段很方便,可以保證hbm與數(shù)據(jù)庫表結構的自動同步。

如何使用呢?很簡單,只要在hibernate.cfg.xml里加上如下代碼

Xml代碼update

update:表示自動根據(jù)model對象來更新表結構,啟動hibernate時會自動檢查數(shù)據(jù)庫,如果缺少表,則自動建表;如果表里缺少列,則自動添加列。

還有其他的參數(shù):

create:啟動hibernate時,自動刪除原來的表,新建所有的表,所以每次啟動后的以前數(shù)據(jù)都會丟失。

create-drop:啟動hibernate時,自動創(chuàng)建表,程序關閉時,自動把相應的表都刪除。所以程序結束時,表和數(shù)據(jù)也不會再存在。

PS:數(shù)據(jù)庫要預先建立好,因為hibernate只會建表,不會建庫

==========================================

表結構和數(shù)據(jù)總是在程序執(zhí)行的時候無端的修改,折騰了好長時間,查了很長時間hibernate的數(shù)據(jù)庫映射文件和接口程序,始終沒有發(fā)現(xiàn)有什么錯誤,到最后才發(fā)現(xiàn)了它!

解釋如下:

hibernate.hbm2ddl.auto Automatically validate or export schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly. eg. validate | update | create | create-drop

其實這個參數(shù)的作用主要用于:自動創(chuàng)建|更新|驗證數(shù)據(jù)庫表結構。

如果沒有此方面的需求建議set value="none".

其它幾個參數(shù)的意思:

validate?????????????? 加載hibernate時,驗證創(chuàng)建數(shù)據(jù)庫表結構

create????????????????? 每次加載hibernate,重新創(chuàng)建數(shù)據(jù)庫表結構

create-drop??????? 加載hibernate時創(chuàng)建,退出是刪除表結構

update???????????????? 加載hibernate自動更新數(shù)據(jù)庫結構

如果發(fā)現(xiàn)數(shù)據(jù)庫表丟失或新增,請檢查hibernate.hbm2ddl.auto的配置 可設置

建議在開發(fā)環(huán)境下使用,在生產(chǎn)環(huán)境下去掉。

優(yōu)點:

1、自動創(chuàng)建新表

2、自動創(chuàng)建新字段

3、自動修改字段類型

缺點:

1、不會自動刪除表

2、不會自動刪除字段

3、自動創(chuàng)建的新字段只能是在最后。

針對缺點的建議:定期把數(shù)據(jù)庫清空(刪除所有表),然后啟動項目,讓hibernate自動創(chuàng)建表結構和索引,當然一些初始化數(shù)據(jù)需要手工導入。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,898評論 18 399
  • Hibernate: 一個持久化框架 一個ORM框架 加載:根據(jù)特定的OID,把一個對象從數(shù)據(jù)庫加載到內(nèi)存中OID...
    JHMichael閱讀 2,107評論 0 27
  • Hibernate中配置主要分為兩種:一種包含了Hibernate與數(shù)據(jù)庫的基本連接信息,在Hibernate工作...
    FTOLsXD閱讀 2,220評論 0 10
  • 目錄 1. Hibernate框架的概述 1.1 Hibernate簡介 1.2 為什么要學習Hibernate ...
    深海魚Q閱讀 1,128評論 0 14
  • 作者——無名 在生活中我們不會隨便和別人聊起自己對某件事的看法,但是有了社交媒體以后,我們的大腦像是裝上了一扇窗,...
    鷺風閱讀 1,264評論 2 3

友情鏈接更多精彩內(nèi)容