由于在映射配置文件中对数据库表及其之间的关系都有对应,可以说映射配置文件中包含了数据库表的所有信息,因此Hibernate可以根据映射配置文件自动创建数据库表。
方法一:在Hibernate应用配置文件中配置如下
<hibernate-configuration>
<session-factory name="foo">
.........
<property name="hbm2ddl.auto">update</property>
<!--
参数:
create 每次初始化运行的时候都是先删除存在的表 然后在重新创建
create-drop 初始化的时候创建新表 当session执行close的时候后删除数据库表
update 每次运行如果数据库表不存在则创建 表不一样则更新 一样就什么都不做
validate 验证表结构是否一致 不一致则抛异常 当选用此参数则不允许修改表的设计属性(即比如name String 类型 由长度255 修改为20)
-->
</session-factory>
</hibernate-configuration>
方法二:通过类中来创建数据库表
Configuration cfg=new Configuration().configure();
SchemaExport se=new SchemaExport(cfg);
//第一个参数 输出DDL到控制台
//第二个参数 执行DDL语言创建表
se.create(true, true);
综合比较,个人感觉第一种方法比较好 ,直接配置 符合hibernate习惯。