在开发过程中,我们可以先设计数据库,然后由MyEclipse自带的功能生成pojo和hbm。也可以先编写pojo,通过xdoclet来生成hbm,在使用hbm2dll来生成数据库。
由于前一种方法的对前期数据库的设计要求较高,一旦对数据库进行更改,那么对整个系统的修改将是噩梦般的修改。
而后一种方式便是一种必须灵活的设计方式。可是随时对数据库进行必要的修改,整个流程都比较简单清晰。
当你使用hbm2dll的时候,你就一定加入了hibernate。该产品是通过hbm文件的内容去产生相应的数据库的。本功能是必须得到hibernat的支持。
第一步:
编写pojo文件。如:
package com.babasport.VO.product; import org.hibernate.mapping.Column; /** * @hibernate.class * table="babasport" * @author sunqitang * */ public class ProductType { private Integer productTypeId; private String productTypeName; /** * @hibernate.id * column="productTypeId" * generator-class="native" * @return */ public Integer getProductTypeId() { return productTypeId; } public void setProductTypeId(Integer productTypeId) { this.productTypeId = productTypeId; } /** * @hibernate.property * @return */ public String getProductTypeName() { return productTypeName; } public void setProductTypeName(String productTypeName) { this.productTypeName = productTypeName; } }
参考文章:http://sunqitang.iteye.com/admin/blogs/326893
第2部,由xdoclet来产生相应的hbm文件:
<?xml version="1.0" encoding="UTF-8"?> <project name="OA系统构建脚本" default="生成hibernate映射文件" basedir="."> <property name="src.dir" value="${basedir}/src"/> <property name="build.dir" value="${basedir}/bin"/> <property name="webapp.dir" value="${basedir}/src/webapp"/> <property name="xdoclet.home" value="D:\\JAVA电子资源\\组件\\Xdoclet\\xdoclet-plugins-1.0.3\\xdoclet-plugins-1.0.3"/> <!-- Build classpath --> <path id="xdoclet.task.classpath"> <fileset dir="${xdoclet.home}/lib"> <include name="**/*.jar"/> </fileset> <fileset dir="${xdoclet.home}/plugins"> <include name="**/*.jar"/> </fileset> </path> <taskdef name="xdoclet" classname="org.xdoclet.ant.XDocletTask" classpathref="xdoclet.task.classpath" /> <target name="生成hibernate映射文件"> <xdoclet> <fileset dir="${src.dir}/com/babasport/VO"> <include name="**/*.java"/> </fileset> <component classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin" version="3.0" destdir="${src.dir}" /> </xdoclet> </target> </project>
特别注意产生的hbm文件的版本一定要是3.0版本。
上面的文件由ant来运行。
第3部
在spring的配置文件中加入:
<prop key="hibernate.hbm2ddl.auto">create</prop>
和对配置文件的支持
<property name="mappingResources">
<list>
<value>com/babasport/VO/product/ProductType.hbm.xml</value>
</list>
</property>
hibernate.hbm2dll.auto的属性由四个:
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构
特别建议:当对数据库创建或修改完毕后,最好关闭该属性。因为该属性还不是特别问题。经常出现丢失数据表的现象
第4部
对配置文件进行加载。
数据库便开始进行改动了。