在开发过程中,我们可以先设计数据库,然后由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部
对配置文件进行加载。
数据库便开始进行改动了。