java吧 关注:1,294,803贴子:12,828,604
  • 4回复贴,共1

请教高手:基于SHH2的一个项目,为什么运行一次,会自动删除数据

取消只看楼主收藏回复

本人初学J2EE,运用SHH2准备编写一个小程序,可刚做了登陆,运行后,会自动删除数据库表中的数据,看代码没有问题,不知道怎么回事?想程序在别的机器上运行效果也是一样,只要重新运行一次,数据库表中数据就空了,看数据库日志是执行了DROP TABLE操作,附上代码请教各给高手大虾来看看问题出在哪?


1楼2012-08-20 17:25回复
    贴吧不能上传附件,高手需要源码的可以Q我:406397039,谢谢!


    3楼2012-08-20 17:29
    回复
      2026-01-16 17:47:11
      广告
      不感兴趣
      开通SVIP免广告
      希望大侠们帮帮忙,小弟都调一天了!谢谢


      4楼2012-08-20 18:30
      回复
        是的


        6楼2012-08-20 18:49
        收起回复
          问题解决了!把<prop key="hibernate.hbm2ddl.auto">create</prop> 改为<prop key="hibernate.hbm2ddl.auto">update</prop> 。再附详解,希望能帮到以后一些人少走弯路!
          hibenate.hbm2ddl.auto属性详解
          hibernate 配置属性中,hibernate.hbm2ddl.auto可以帮助你实现正向工程,即由java代码生成数据库脚本,进而生成具体的表结构.
          &在hibernate.cfg.xml中:
          Java代码 复制代码
          1. <property name="hibernate.hbm2ddl.auto">
          2. </property>
          <property name="hibernate.hbm2ddl.auto">
          </property>
          它包含4个属性:
          * create : 会根据你的model类来生成表,但是每次运行都会删除上一次的表,重新生成表,哪怕2次没有任何改变
          * create-drop : 根据model类生成表,但是sessionFactory一关闭,表就自动删除
          * update : 最常用的属性,也根据model类生成表,即使表结构改变了,表中的行仍然存在,不会删除以前的行
          * validate : 只会和数据库中的表进行比较,不会创建新表,但是会插入新值
          


          7楼2012-08-20 19:13
          回复