hibernate通过配置文件和方法自动创建表。

来源:互联网 发布:普通票据打印软件 编辑:程序博客网 时间:2024/05/18 16:18
         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:缺少初始化数据。


0 0