hibernate自動建表之engine設定

2022-01-11 15:48:25 字數 826 閱讀 7482

1.mysql的資料庫引擎中,只有innodb和bdb(berkley db )包括了對事務處理和外來鍵的支援。如果資料引擎建為myisam則rollback無效。

2.而hibernate自動建表的時候語句如下

hibernate: 

create table user (

id integer not null auto_increment,

name varchar(255),

password varchar(255),

primary key (id)

) engine=myisam

即engine為myisam模式.此模式並不支援事務處理和外來鍵約束.

3.解決方案

設定dialect屬性 

注:hibernate5.0之後一定要在mysql和innodbdialect中間加乙個 5

org.hibernate.dialect.mysql5innodbdialect

此時執行後台回顯的建表語句為:

hibernate: 

create table user (

id integer not null auto_increment,

name varchar(255),

password varchar(255),

primary key (id)

) engine=innodb

即engine為innodb模式.此模式支援事務處理和外來鍵約束.

注:  具體innodb和myisam的區別請檢視:

資料庫方言:

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 在配置檔案中新增如下配置 create 然後我們再執行任何檢索 更新等操作的時候就會自動建表 2.編寫乙個方法,方法內容如下 configuration conf new configuration conf.configure hibernate.cfg.xml sc...