hibernate 自动建表

一般情况下有如下两种方法:
 
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:缺少初始化数据。



请参照:http://my.oschina.net/u/2415525/blog/518125

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值