结构程序Hibernate自动创建表

最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--结构程序

    

只要在hibernate.cfg.xml添加这句话,就能够主动生成数据表 
<property name="hibernate.hbm2ddl.auto">update</property> 

update:表现主动根据model对象来新更表结构,启动hibernate时会主动检查数据库,如果缺乏表,则主动建表;如果内外缺乏列,则主动添加列。 

还有其他的数参: 
create:启动hibernate时,主动删除本来的表,建新全部的表,所以每次启动后的前以数据会都失丢。 

create-drop:启动hibernate时,主动建创表,程序关闭时,主动把应相的表都删除。所以程序结束时,表和数据也不会再存在。 

PS:数据库要先预建立好,因为hibernate只会建表,不会建库

    

 

    

==========================================

    

 

    每日一道理
风,渐渐吹起,吹乱了我的发丝,也让我的长裙有些飘动。绿叶仿佛在风中起舞,离开了树,投向了大地,却不知这样会枯萎,我弯下腰,轻轻拾起一片树叶,那非常有序的茎脉,是一种美的点缀。我有些哀叹:绿叶啊,绿叶,你这般美丽地从树上轻轻飘下,随风起舞,却不知已被人称之为落叶!

    

表结构和数据总是在程序执行的时候无故的改修,折腾了好长间时,查了很长间时hibernate的数据库射映文件和接口程序,一直没有现发有什么错误,到最后才现发了它!
           <property name="hibernate.hbm2ddl.auto" value="update" />
解释如下:

hibernate.hbm2ddl.auto Automatically validate or export schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly. eg. validate | update | create | create-drop

其实这个数参的作用要主于用:主动建创|新更|验证数据库表结构。
如果没有此方面的需求提议set value="none".

其它几个数参的意思:

validate               载加hibernate时,验证建创数据库表结构
create                  每次载加hibernate,重建新创数据库表结构
create-drop        载加hibernate时建创,出退是删除表结构
update                 载加hibernate主动新更数据库结构

    

如果现发数据库表失丢或新增,请检查hibernate.hbm2ddl.auto的配置 可置设 <propertyname="hibernate.hbm2ddl.auto" value="none" />

文章结束给大家分享下程序员的一些笑话语录: N多年前,JohnHein博士的一项研究表明:Mac用户平均IQ要比PC用户低15%。超过6000多的参加者接受了测试,结果清晰的显示IQ比较低的人会倾向于使用Mac。Mac用户只答对了基础问题的75%,而PC用户却高达83%。

你可能感兴趣的:(Hibernate)