一般情况下有如下两种方法:
1:
在配置文件中加上
2:
编写一个方法,方法内容如下:
Configuration conf=new Configuration();
conf.configure("/hibernate.cfg.xml");
SchemaExport dbExport=new SchemaExport(conf);
dbExport.create(true, true);
1:只能创建表不能创建数据库
2:创建的表的数据类型、长度经常跟我们实际需要不符。
3:第一种方式每次执行都会把以前旧表删除再次创建新表,所以执行完毕后一般要把这个语句注释掉或删除。
1:
在配置文件中加上
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.hbm2ddl.auto">update</property> <!--建议使用-->
这个语句,然后我们再执行任何检索、更新等操作的时候就会自动建表
update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。
还有其他的参数:
create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。
create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。
2:
编写一个方法,方法内容如下:
Configuration conf=new Configuration();
conf.configure("/hibernate.cfg.xml");
SchemaExport dbExport=new SchemaExport(conf);
dbExport.create(true, true);
上面两种方法虽然都能反向创建表。
但我个人建议仅在练习中如上述方法创建。因为存在以下问题:
1:只能创建表不能创建数据库
2:创建的表的数据类型、长度经常跟我们实际需要不符。
3:第一种方式每次执行都会把以前旧表删除再次创建新表,所以执行完毕后一般要把这个语句注释掉或删除。
4:缺少初始化数据。