才开始学习Hibernate时,发现一个奇怪的现象,明明一个数据库表中没有的字段,在运行一下保存对象的测试用例后,数据库表莫名其妙地增加了一个新的字段。后来发现原来Hibernate提供了自动建表的功能,如果没有创建数据库,可以将Java类和hbm.xml文件配置好,运行程序,Hibernate会根据配置文件属性自动在数据库中创建对应的数据库表。这个功能由hibernate.cfg.xml中hibernate.hbm2ddl.auto属性进行设置。开启或关闭该功能有两种方法:
方法一:
在hibernate.cfg.xml中添加:
<properties> <property name="hibernate.hbm2ddl.auto" value="create" /> properties>
value的值可选项如下:
- validate 加载hibernate时,验证创建数据库表结构
- create 每次加载hibernate,重新创建数据库表结构。
- create-drop 加载hibernate时创建,退出是删除表结构
- update 加载hibernate自动更新数据库结构
方法二:
用自动生成代码后,在/src下面有一个jdbc.properties文件,这里加一句hibernate.hbm2ddl.auto=update。值的可选项同上。