JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JSP技术--文件操作  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
用xdoclet生成hibernate映射文件
作者:     文章来源:
访问次数:520次     加入时间:2007年01月06日
首先你要下载xdoclet-1.2.3,ant1.6.5,然后写项目管理文件build.properties,build.xml。

举例如下:
build.properties内容:
xdoclet.lib=E:/xdoclet-1.2.3/lib

build.xml内容:
<?xml version="1.0" encoding="UTF-8"?>
<project name="pms" default="" basedir=".">
<property file="build.properties" />
<property name="app.home" value="." />
<property name="app.name" value="pms" />
<property name="src.dir" value="${app.home}/src" />

<path id="xdoclet.classpath">
<fileset dir="${xdoclet.lib}">
<include name="*.jar" />
</fileset>
</path>
<!-- =================================================================== -->
<!-- Initialise -->
<!-- =================================================================== -->
<target name="init">
<tstamp>
<format property="TODAY" pattern="d-MM-yy" />
</tstamp>
<taskdef name="hibernatedoclet"
classname="xdoclet.modules.hibernate.HibernateDocletTask"
classpathref="xdoclet.classpath" />
</target>
<!-- =================================================================== -->
<!-- The "hibernatedoclet" target generates Hibernate mapping files -->
<!-- based on XDoclet marked-up Plain Old Java Object (POJO) -->
<!-- =================================================================== -->
<target name="hibernatedoclet" depends="init"
unless="hibernatedoclet.unnecessary"
description="Generate Hibernate mapping files">

<taskdef name="hibernatedoclet"
classname="xdoclet.modules.hibernate.HibernateDocletTask"
classpathref="compile.classpath" />

<!-- generate hibernate files -->
<hibernatedoclet destdir="${src.dir}"
mergedir="${src.dir}" excludedtags="@version,@author,@todo,@see"
addedtags="@xdoclet-generated at ${TODAY}" force="false"
verbose="false">
<fileset dir="${src.dir}">
<include name="net/pms/model/*.java" />
</fileset>
<hibernate version="3.0" />
</hibernatedoclet>
</target>
</project>

javabean如下:
package net.pms.model;

import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.EqualsBuilder;

/**
*
* @author jfish
* @hibernate.class table="person"
*/
public class Person implements Serializable {

private static final long serialVersionUID = 1044237873392048222L;

private Long id;

private String name;

private Date createTime;

/**
* @return Returns the createTime.
* @hibernate.property column = "ts"
*/
public Date getCreateTime() {
return createTime;
}

/**
* @param createTime
* The createTime to set.
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}

/**
* @return Returns the id.
* @hibernate.id column = "person_id" generator-class = "native"
* unsaved-value = "not null"
*/
public Long getId() {
return id;
}

/**
* @param id
* The id to set.
*/
public void setId(Long id) {
this.id = id;
}

/**
* @return Returns the name.
* @hibernate.property
*/
public String getName() {
return name;
}

/**
* @param name
* The name to set.
*/
public void setName(String name) {
this.name = name;
}

/**
* @see java.lang.Object#toString()
*/
public String toString() {
return new ToStringBuilder(this).append("name", this.name).append("id",
this.id).append("createTime", this.createTime).toString();
}

/**
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return new HashCodeBuilder(-96436153, 713792057).appendSuper(
super.hashCode()).append(this.createTime).append(this.name)
.append(this.id).toHashCode();
}

/**
* @see java.lang.Object#equals(Object)
*/
public boolean equals(Object object) {
if (!(object instanceof Person)) {
return false;
}
Person rhs = (Person) object;
return new EqualsBuilder().appendSuper(super.equals(object)).append(
this.createTime, rhs.createTime).append(this.name, rhs.name)
.append(this.id, rhs.id).isEquals();
}
}

生成的映射文件如下:
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="net.pms.model.Person" table="person">

<id name="id" column="person_id" type="java.lang.Long"
unsaved-value="not null">
<generator class="native">
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-Person.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>

<property name="createTime" type="java.util.Date" update="true"
insert="true" column="ts" />

<property name="name" type="java.lang.String" update="true"
insert="true" column="name" />

<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-Person.xml
containing the additional properties and place it in your merge dir.
-->

</class>

</hibernate-mapping>

Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号