结构程序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%。
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号