Hibernate1 Xdoclet

Hibernate功能定位:

Hibernate 是对象/关系映射」(Object/Relational Mapping)的解決方案,简写为ORM,简单的說就是将Java 中的对象与实体关系,映射至关系型数据中的表格与表格之间的关系, Hibernate 提供了这个过程中自动对应转换的方案。

hbm2java是根据映射文件自动生成java源文件

hbm2ddl 是根据映射文件自动生成数据库schema

XDoclet 根据带有XDoclet的标记的java源文件生成映射文件,数据库Schema

Middlegen 根据数据库Schema自动生成映射文件,JAVA文件。

对于管理Hiberante 映射文件,现有多种策略, 如:
  1一切手工编写
  2 把xdoclet标记放在你的Java 类中, 让其生成相应的映射文件。
  3 从SQL 模式(schema)生成Hibernate 映射文件和Java类。
  4  手工编写Hibernate 映射文件, 并且从Hibernate 映射生成Java类和SQL模式。
  5  基于给定的SQL 模式,手工编写Hibernate 映射文件,并利用hbm2java工具生成Java类。

JAVADOC由标签和描述组成,嵌入JAVA代码中,可以自动生成API文件。XDOCLET是JAVADOC的扩展,现已独立,为每一种应用都提供相应的标签和描述。HIBERNATE标签及描述可以自动生成映射文件,及表。

例:

生成JAVA对象类,根据需要在类中添加相应Xdoclet标签。

package test.hibernate.testxdoclet.entity;

import java.io.Serializable;

public class RegisterUser implements Serializable {

 /**
  *@hibernate.class
  *table="sx_registeruser"
  *
  */
 private static final long serialVersionUID = -4795137895281634631L;

 private Integer id;

 private String username;

 private String telephone;

 private String address;

 private String zipcode;

 /**
  *
  */
 private String interests;
 
 /**
  *@hibernate.property
  * column="address"
  * type="string"
  * length="100"
  *@return
  */

 public String getAddress() {
  return address;
 }

 public void setAddress(String address) {
  this.address = address;
 }
 
 /**
  *@hibernate.id
  * column="id"
  * type="java.lang.Integer"
  *@return
  */

 public Integer getId() {
  return id;
 }

 public void setId(Integer id) {
  this.id = id;
 }

 
 /**
  *@hibernate.property
  * column="interests"
  * type="string"
  *@return
  */
 
 public String getInterests() {
  return interests;
 }

 public void setInterests(String interests) {
  this.interests = interests;
 }

 /**
  *@hibernate.property
  * column="telephone"
  * type="string"
  *@return
  */
 
 public String getTelephone() {
  return telephone;
 }

 public void setTelephone(String telephone) {
  this.telephone = telephone;
 }

 /**
  *@hibernate.property
  * column="username"
  * type="string"
  *@return
  */
 
 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 /**
  *@hibernate.property
  * column="zipcode"
  * type="string"
  * length="6"
  *@return
  */
 
 public String getZipcode() {
  return zipcode;
 }

 public void setZipcode(String zipcode) {
  this.zipcode = zipcode;
 }

}
构建build.xml. ANT通过执行build.xml根据类文件及当中相应的Xdoclet标签,配合Xdoclet应用,产生映射文件。

<?xml version="1.0" encoding="UTF-8"?>

<project name="testxdoclet" default="hibernatedoclet" basedir=".">  //name可以据需要取,default表示默认target, basedir表示构建查找路径。

 <property name="build.dir" value="${basedir}/src" />   // 这里的property可以理解为全局变量。引用${}

 <property name="xdoclet.force" value="false" />

 <path id="xdoclet.classpath">           // 这段表示告诉ANT构建时,Xdoclet的路径。id名可以按需取。dir表示目录
  <fileset dir="d:/xdoclet-1.2.3/lib">
   <include name="*.jar" />
  </fileset>
 </path>


 <target name="hibernatedoclet">   //表示target名字,名字可以按需取。

  <taskdef name="hibernatedoclet"              //hibernate任务的描述。这段内容可以在xdoclet说明文件中找到。
   classname="xdoclet.modules.hibernate.HibernateDocletTask"
   classpathref="xdoclet.classpath" />

  <hibernatedoclet destdir="${build.dir}"       //表示最终产生的映射文件存放的目录。
   force="${xdoclet.force}">

   <fileset dir="${build.dir}">                            //表示根据哪个.java文件(对象类)产生映射文件。
    <include name="**/RegisterUser.java" />
   </fileset>


   <hibernate version="3.0" validateXML="3.0"/>    //表示产生hbm.xml文件的设置,这里指明了版本为3.0

   <hibernatecfg version="3.0" driver="com.mysql.jdbc.Driver"          / /表示产生hibernate-cfx.xml的描述。
    jdbcUrl="jdbc:mysql://localhost:3306/firstdb" userName="root"
    password="root1" dialect="MySQLDialect">

    <othermapping name="resource"
     value="test/hibernate/testxdoclet/entity/RegisterUser.hbm.xml"/>
   </hibernatecfg>

  </hibernatedoclet>

 </target>

</project>

buile.xml文件具体hibernate任务设置可以通过Xdoclet说明文件找到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值