日期:2014-05-16 浏览次数:20407 次
/******************************************************************************
Author: QinZhiGuo
Date: 2012-6-26
Topic: 关于数据库端表更新本地hibenate相关配置调整的解决方案
******************************************************************************/
Content:
后台组在开发过程中可能会遇到这样的如下问题:
1. 根据手机端需求变化,需要修改后台的数据库设计
2. 数据库设计存在一定的问题,某些数据库表需要删除若干列
3. 新建了数据库表
4. 在原有表中新添加了列
这一系列问题我们可能会经常性的遇到,之前为了解决后台编码和开发的问题,我们选择重新反向生成所有的表,来达到重建的目的。但是这样一来存在很大的问题,就是我们需要重复性的去完成很多工作。之前一直苦于这样的无用功。
现在我们可以尝试一下另外的解决方案:
Q1:新建了表怎么办呢?
A1:新建表后,我们解决起来比较简单,直接添加相关配置,但是可能需要修改几个文件,首先切换到”MyEclipse Database Explorer Perspective”视图模式,具体的切换方法可以在:
Window->ShowView->DB Browser
然后选择对应的数据连接,然后在ECAMPUS->TABLE下可以看到我们用户可以访问的数据库表,选择要添加的表,然后右键->反向生成。然后一步步添加entity和DAO即可。
反向生成完毕后我们需要回到MyEclipse的编辑模式,然后需要配置hibernate.cfg.xml文件,然后再mapping里面添加我们刚刚加入的表映射配置文件,比如我们刚刚反向添加了WApp整个表,在com.edance.ecampus.web.entity里面会有一个com.edance.ecampus.web.entity.Wapp.hbm.xml,我们需要将这个配置问价加入即可。
Q2:表中添加了新的列怎么办?
A2:
解决方法一(推荐):
把原有表的配置文件包括如下
com.edance.ecampus.web.entity.XXX.hbm.xml,
com.edance.ecampus.web.entity.XXX.java
com.edance.ecampus.web.dao.XXXDAO.java
依次删除。
然后重新反向添加,添加方法如A1
解决方法二:
数据库中原有表中添加新列后我们并不需要刻意的重新生成,在研究了hibernate的配置相关性后,我们需要改动几个地方来解决这个问题:
首先我们需要在对应的com.edance.ecampus.web.entity.XXX.hbm.xml中添加对应的一个<property>XXXX</property>项,这样配置文件才能访问到对应的列。
然后在com.edance.ecampus.web.entity.XXX.java中添加对应的set和get方法。然后保存。
然后需要在XXXDAO.java中添加和修改对应的方法。一般配置完成后myeclipse会自动更新。
Q3:表中删除了原有若干的列怎么办?
A3: 修改方法同Q2,改动的地方相同,只是变成了删除。
-----------------------------------------à我是华丽的分割线<------------------------------------------------
如果在上述情况修改完还是不好使的话,可以尝试重新生成,最笨的办法了。祝大家好运!