@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:如果表不存在则创建,有就不用创建