1.通过配置文件来配置。
Spring和hibernate集合的框架中只要在applicationContext.xml文件中配置如下
<prop key="hibernate.hbm2ddl.auto">update</prop>
Hibernate框架中只要在hibernate.cfg.xml里加上如下代码
<property name="hbm2ddl.auto">update</property>
中间有三个属性,1:create,2:update,create-drop;
1.create:自动生成新表,但是如果数据库表存在,将会把表删除之后,按照配置文件重新创建表,这将导致原有的表数据全部丢失。
2.upddate:相对于create来说,不会删除表,会检测先表结构,自动更新表结构,如果没有表将自动创建表。实际应用用的最多的也是这个属性。
3.create-drop:加载hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。
4.validate 加载hibernate时,验证创建数据库表结构
以上三种方法,都不会自动创建数据库。所以在使用配置来自动创建表的时候,必须要手动创建数据库。
2.还有一个种方法是通过方法来创建数据库表。
编写一个方法,方法内容如下:
Configuration conf=new Configuration();
conf.configure("/hibernate.cfg.xml");
SchemaExport dbExport=new SchemaExport(conf);
dbExport.create(true, true);
上面两种方法虽然都能反向创建表。但我个人建议仅在练习中如上述方法创建。因为存在以下问题:
1:只能创建表不能创建数据库
2:创建的表的数据类型、长度经常跟我们实际需要不符。
3:第一种方式每次执行都会把以前旧表删除再次创建新表,所以执行完毕后一般要把这个语句注释掉或删除。
4:缺少初始化数据。