@Test
public void testCreateDB(){
Configuration cfg = new Configuration().configure();
SchemaExport se = new SchemaExport(cfg);
//第一個引數 是否生成ddl指令碼 第二個引數 是否執行到資料庫中
se.create(true, true);
}
發現執行結果是先刪除原來的表然後根據對映關係建立了新的表
所以,和hibernate.cfg.xml中的<property name="hbm2ddl.auto">create</property>功能相同
PS:
hbm2ddl.auto屬性是指資料庫更新方式:
- create:每次執行,都先把原有的資料表刪除,然後建立表
- create-drop:每次載入hibernate時根據model類生成表,但是sessionFactory一顯式關閉,表就自動刪除。
- validate:啟動時驗證現有schema與你配置的hibernate是否一致,如果不一致就丟擲異常,並不做更新
- update:如果表不存在則建立,有就不用建立