`
sunqitang
  • 浏览: 74795 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hbm2dll的使用

    博客分类:
  • SSH
阅读更多

在开发过程中,我们可以先设计数据库,然后由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部

   对配置文件进行加载。

  数据库便开始进行改动了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics