- 浏览: 170556 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
小桔子:
u 棒棒哒!按照你的搞定了,之前搞了好久!u 棒棒哒!!! ...
Ubuntu为Tomcat启用80端口 -
u011938035:
我用的是nutch1.7,org.apache.nutch.n ...
nutch1.4 URLNormalizers 详解 -
peigang:
试试跟踪一下脚本,应该是环境变量的问题。
nutch1.4:爬虫定时抓取设置 -
zhangmj10:
你好,看这帖子是好久以前的,不知道你能不能看到。不知道能不能帮 ...
nutch1.4:爬虫定时抓取设置 -
shinide1989:
楼主你好,我正需要修改html的解析,并想把结果存为其他格 ...
nutch1.4插件开发
使用Hibernate的一个不便之处就是要维护数据库schema,hbm文件和java文件的一致性,而Middlegen可以帮助你完成这些。
Middlegen是一个基于Xdoclet的代码,配置文件自动生成工具。它支持目前流行的大部分的技术,例如EJB,JDO,Hibernate,Torque,JSP/Struts等。
Middlegen主要根据你已有的数据库Schema根据你的要求来自动的生成你所需要的文件,这大大的降低了开发难度,提高了开发速度。使用Middlegen的另一个显而易见的好处是你所有的代码可以在一分钟之内和数据库同步。
使用Middlegen自动的生成Hbm文件和Java文件包括两步,第一,根据数据库Schema生成Hbm文件。第二,根据hbm文件生成与之对应得Java文件,这些文件主要是与数据库表对应得持久化类。Middlegen的主要功能都必须在ant环境下使用,下述build文件片断说明了如何定义自定义的任务(task)
<taskdef></taskdef> name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="classpath.path"/>
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="classpath.path"/>
其中第一个taskdef定义了用于根据数据库schema生成hbm文件的自定义任务(middlegen)。第二个taskdef定义了用于使用hbm文件自动生成持久化Java文件的自定义任务(hbm2java)。其中要说明的是classpath.path指定的路径下必须包含middlegen携带的jar文件和hibernate携带的jar文件。
使用自定义任务来生成hbm文件:
<target name="mid-gen" depends="mid-init"></target>
<taskdef></taskdef> name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="classpath.path"/>
<middlegen appname="mda"></middlegen> prefsdir="${conf.dir}"
gui="false"
databaseurl="${config.database.url}"
driver="oracle.jdbc.driver.OracleDriver"
username="${config.database.user}"
password="${config.database.password}"
schema="${config.database.user}"
includeViews="false">
<hibernate destination="${build.src-gen.dir}"></hibernate> package="entity"
genXDocletTags="true" javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"/>
上述build片断中middlegen部分主要说明了在使用middlegen过程中的一些配置,关于数据库部分不用多说,主要说明gui和prefsdir部分。Middlegen自带了一个GUI界面用来即时的变更数据库字段和生成文件之间的映射关系,如果将gui属性设置为true,那么在代码生成之前会跳出一个界面让你来配置数据库字段和生成文件之间的对应关系,但是对于每日构建来说这不太合适,应为这个过程序要人为的干涉,哪怕只是点击确认按钮。同时middlegen提供了一个prefsdir选项,middlegen会自动地在该选项指定的目录下寻找文件appname-prefs.properties,根据该文件中定义的对应关系来生成文件。其中appname就是上述定义的appname,本例中为mda-prefs.propertyes。
hibernate部分主要说明生成hbm文件的一些属性,例如destination说明了生成文件的位置。Package说明了生成hbm文件对应的java文件的所在包。GenXDocletTags说明了是否在hbm文件内部保留元数据标记。
如下是一个mda-prefs.propertyes文件的一部分:
hibernate.tables.GENINKBNINFO.base-class-name=GeninKbnInfoEntity
hibernate.tables.GENINKBNINFO.columns.GENINKBN.java-name=geninKbn
hibernate.tables.GENINKBNINFO.columns.GENINKBN.java-type=java.lang.String
hibernate.tables.GENINKBNINFO.columns.GENINKBNCD.java-name=geninKbnCD
hibernate.tables.GENINKBNINFO.columns.GENINKBNCD.java-type=java.lang.Integer
…
以上说明对于数据库中的表GENINKBNINFO对应的Java类为GeninKbnInfoEntity,该表有两个字段:GENINKBN和GENINKBNCD,其中字段GENINKBN对应的java字段的属性名为geninKbn,类型为String。字段GENINKBNCD对应得java字段属性名为geninKbnCD,类型为Integer,生成的hbm文件为:
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping></hibernate-mapping>
<class></class> name="entity.GeninKbnInfoEntity"
table="GENINKBNINFO"
>
<meta attribute="class-description" inherit="false">
@hibernate.class
table="GENINKBNINFO"
name="geninKbnCD"
type="java.lang.Integer"
column="GENINKBNCD"
>
<meta attribute="field-description">
@hibernate.id
generator-class="assigned"
type="java.lang.Integer"
column="GENINKBNCD"
<generator class="assigned"></generator>
name="geninKbn"
type="java.lang.String"
column="GENINKBN"
not-null="true"
length="40"
>
<meta attribute="field-description">
@hibernate.property
column="GENINKBN"
length="40"
not-null="true"
然后使用如下build片断来根据hbm文件自动生成java文件。
<target name="hbm2java"></target> description="Generate .java from .hbm files." depends="mid-gen">
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="classpath.path"/>
<hbm2java output="${build.src-gen.dir}" classpathref="classpath.path"></hbm2java>
<fileset></fileset>
<include name="**/*.hbm.xml"></include>
hbm2java是hibernate自带的一个工具你必须从hibernate网站上下载一个叫做hibernate-tools.jar的工具,并且将它加载到classpath下面,如下是该工具生成的Java代码:
package entity;
import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* @hibernate.class
* table="GENINKBNINFO"
*
*/
public class GeninKbnInfoEntity implements Serializable {
/** identifier field */
private Integer geninKbnCD;
/** persistent field */
private String geninKbn;
/** full constructor */
public GeninKbnInfoEntity(Integer geninKbnCD, String geninKbn) {
this.geninKbnCD = geninKbnCD;
this.geninKbn = geninKbn;
}
/** default constructor */
public GeninKbnInfoEntity() {
}
/**
* @hibernate.id
* generator-class="assigned"
* type="java.lang.Integer"
* column="GENINKBNCD"
*
*/
public Integer getGeninKbnCD() {
return this.geninKbnCD;
}
public void setGeninKbnCD(Integer geninKbnCD) {
this.geninKbnCD = geninKbnCD;
}
/**
* @hibernate.property
* column="GENINKBN"
* length="40"
* not-null="true"
*
*/
public String getGeninKbn() {
return this.geninKbn;
}
public void setGeninKbn(String geninKbn) {
this.geninKbn = geninKbn;
}
public String toString() {
return new ToStringBuilder(this)
.append("geninKbnCD", getGeninKbnCD())
.toString();
}
public boolean equals(Object other) {
if ( !(other instanceof GeninKbnInfoEntity) ) return false;
GeninKbnInfoEntity castOther = (GeninKbnInfoEntity) other;
return new EqualsBuilder()
.append(this.getGeninKbnCD(), castOther.getGeninKbnCD())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(getGeninKbnCD())
.toHashCode();
}
}
生成的java文件中带有Xdoclet标签,完全可以在从Java文件生成Hbm文件,这里不讲具体的过程,可以参看后续的Xdoclet部
Middlegen是一个基于Xdoclet的代码,配置文件自动生成工具。它支持目前流行的大部分的技术,例如EJB,JDO,Hibernate,Torque,JSP/Struts等。
Middlegen主要根据你已有的数据库Schema根据你的要求来自动的生成你所需要的文件,这大大的降低了开发难度,提高了开发速度。使用Middlegen的另一个显而易见的好处是你所有的代码可以在一分钟之内和数据库同步。
使用Middlegen自动的生成Hbm文件和Java文件包括两步,第一,根据数据库Schema生成Hbm文件。第二,根据hbm文件生成与之对应得Java文件,这些文件主要是与数据库表对应得持久化类。Middlegen的主要功能都必须在ant环境下使用,下述build文件片断说明了如何定义自定义的任务(task)
<taskdef></taskdef> name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="classpath.path"/>
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="classpath.path"/>
其中第一个taskdef定义了用于根据数据库schema生成hbm文件的自定义任务(middlegen)。第二个taskdef定义了用于使用hbm文件自动生成持久化Java文件的自定义任务(hbm2java)。其中要说明的是classpath.path指定的路径下必须包含middlegen携带的jar文件和hibernate携带的jar文件。
使用自定义任务来生成hbm文件:
<target name="mid-gen" depends="mid-init"></target>
<taskdef></taskdef> name="middlegen"
classname="middlegen.MiddlegenTask"
classpathref="classpath.path"/>
<middlegen appname="mda"></middlegen> prefsdir="${conf.dir}"
gui="false"
databaseurl="${config.database.url}"
driver="oracle.jdbc.driver.OracleDriver"
username="${config.database.user}"
password="${config.database.password}"
schema="${config.database.user}"
includeViews="false">
<hibernate destination="${build.src-gen.dir}"></hibernate> package="entity"
genXDocletTags="true" javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"/>
上述build片断中middlegen部分主要说明了在使用middlegen过程中的一些配置,关于数据库部分不用多说,主要说明gui和prefsdir部分。Middlegen自带了一个GUI界面用来即时的变更数据库字段和生成文件之间的映射关系,如果将gui属性设置为true,那么在代码生成之前会跳出一个界面让你来配置数据库字段和生成文件之间的对应关系,但是对于每日构建来说这不太合适,应为这个过程序要人为的干涉,哪怕只是点击确认按钮。同时middlegen提供了一个prefsdir选项,middlegen会自动地在该选项指定的目录下寻找文件appname-prefs.properties,根据该文件中定义的对应关系来生成文件。其中appname就是上述定义的appname,本例中为mda-prefs.propertyes。
hibernate部分主要说明生成hbm文件的一些属性,例如destination说明了生成文件的位置。Package说明了生成hbm文件对应的java文件的所在包。GenXDocletTags说明了是否在hbm文件内部保留元数据标记。
如下是一个mda-prefs.propertyes文件的一部分:
hibernate.tables.GENINKBNINFO.base-class-name=GeninKbnInfoEntity
hibernate.tables.GENINKBNINFO.columns.GENINKBN.java-name=geninKbn
hibernate.tables.GENINKBNINFO.columns.GENINKBN.java-type=java.lang.String
hibernate.tables.GENINKBNINFO.columns.GENINKBNCD.java-name=geninKbnCD
hibernate.tables.GENINKBNINFO.columns.GENINKBNCD.java-type=java.lang.Integer
…
以上说明对于数据库中的表GENINKBNINFO对应的Java类为GeninKbnInfoEntity,该表有两个字段:GENINKBN和GENINKBNCD,其中字段GENINKBN对应的java字段的属性名为geninKbn,类型为String。字段GENINKBNCD对应得java字段属性名为geninKbnCD,类型为Integer,生成的hbm文件为:
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping></hibernate-mapping>
<class></class> name="entity.GeninKbnInfoEntity"
table="GENINKBNINFO"
>
<meta attribute="class-description" inherit="false">
@hibernate.class
table="GENINKBNINFO"
name="geninKbnCD"
type="java.lang.Integer"
column="GENINKBNCD"
>
<meta attribute="field-description">
@hibernate.id
generator-class="assigned"
type="java.lang.Integer"
column="GENINKBNCD"
<generator class="assigned"></generator>
name="geninKbn"
type="java.lang.String"
column="GENINKBN"
not-null="true"
length="40"
>
<meta attribute="field-description">
@hibernate.property
column="GENINKBN"
length="40"
not-null="true"
然后使用如下build片断来根据hbm文件自动生成java文件。
<target name="hbm2java"></target> description="Generate .java from .hbm files." depends="mid-gen">
name="hbm2java"
classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="classpath.path"/>
<hbm2java output="${build.src-gen.dir}" classpathref="classpath.path"></hbm2java>
<fileset></fileset>
<include name="**/*.hbm.xml"></include>
hbm2java是hibernate自带的一个工具你必须从hibernate网站上下载一个叫做hibernate-tools.jar的工具,并且将它加载到classpath下面,如下是该工具生成的Java代码:
package entity;
import java.io.Serializable;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* @hibernate.class
* table="GENINKBNINFO"
*
*/
public class GeninKbnInfoEntity implements Serializable {
/** identifier field */
private Integer geninKbnCD;
/** persistent field */
private String geninKbn;
/** full constructor */
public GeninKbnInfoEntity(Integer geninKbnCD, String geninKbn) {
this.geninKbnCD = geninKbnCD;
this.geninKbn = geninKbn;
}
/** default constructor */
public GeninKbnInfoEntity() {
}
/**
* @hibernate.id
* generator-class="assigned"
* type="java.lang.Integer"
* column="GENINKBNCD"
*
*/
public Integer getGeninKbnCD() {
return this.geninKbnCD;
}
public void setGeninKbnCD(Integer geninKbnCD) {
this.geninKbnCD = geninKbnCD;
}
/**
* @hibernate.property
* column="GENINKBN"
* length="40"
* not-null="true"
*
*/
public String getGeninKbn() {
return this.geninKbn;
}
public void setGeninKbn(String geninKbn) {
this.geninKbn = geninKbn;
}
public String toString() {
return new ToStringBuilder(this)
.append("geninKbnCD", getGeninKbnCD())
.toString();
}
public boolean equals(Object other) {
if ( !(other instanceof GeninKbnInfoEntity) ) return false;
GeninKbnInfoEntity castOther = (GeninKbnInfoEntity) other;
return new EqualsBuilder()
.append(this.getGeninKbnCD(), castOther.getGeninKbnCD())
.isEquals();
}
public int hashCode() {
return new HashCodeBuilder()
.append(getGeninKbnCD())
.toHashCode();
}
}
生成的java文件中带有Xdoclet标签,完全可以在从Java文件生成Hbm文件,这里不讲具体的过程,可以参看后续的Xdoclet部
发表评论
-
CentOS7下Kafka的安装介绍
2018-11-18 17:53 373简介 Kafka 是一种高吞吐的分布式发布订阅消息系统, ... -
Ubuntu为Tomcat启用80端口
2012-09-11 15:05 10113一、tomcat部署调试 Update the pac ... -
MyEclipse配置IvyDE
2012-03-28 14:16 2220从以下地址下载eclipse,http://www.eclip ... -
Ubuntu 安装jdk
2012-02-19 18:58 907方法一:安装开源jdk 先运行执行java 或者javac测 ... -
JSTL 1.2.x guide
2011-05-03 23:47 1557JSTL 1.2.x is the latest versio ... -
nutch二次开发环境搭建
2011-05-03 17:05 1477本文在总结使用nutch1.2框架做二次开发实验中总结出开发环 ... -
NutchBean构造方法解析
2011-05-02 16:47 1178NutchBean(Configuration conf, P ... -
页面浮动窗口效果实现
2011-03-23 10:44 1725<style type="text/cs ... -
Lucene+Nutch搜索引擎开发一:介绍
2011-02-22 18:34 1053本系列文章是Lucene+Nutch学习、实现的记录,适用于有 ... -
Spring应用开发:控制反转实现(IOC)原理
2010-12-05 22:03 1055IOC的核心接口是BeanFactory,它的职责包括实例化、 ... -
Apache Axis2实现WebService在J2EE中的应用
2010-12-05 22:00 694整理中。。。。 -
Struts2应用开发详解--17、对国际化的支持。
2010-09-22 22:57 909国际化的支持建立在系统语言环境参数基础上,Struts框架会根 ... -
Struts2应用开发详解--16、对Action中的方法进行校验
2010-09-22 22:52 1012struts2的校验可以用两种方式实现: 一、java代码实 ... -
Struts2应用开发详解--15、自定义拦截器
2010-09-22 22:51 1195拦截器在实际开发中经常用到,典型的应用如对全局环境的权 ... -
Struts2应用开发详解--14、文件上传和下载
2010-09-22 22:51 780一、文件上传 Struts2的文件上传需要common ... -
Struts2应用开发详解--13、访问或者添加属性
2010-09-22 22:49 757Struts2中摒弃掉了Struts1中对servlet各种对 ... -
Struts2应用开发详解--12、自定义类型转换器
2010-09-22 22:48 752struts2中 1、局部类型转换器 2、全局 ... -
Struts2应用开发详解--11、请求参数的接收
2010-09-22 02:02 1088Struts2中请求参数以action属性的方式被初始化赋值。 ... -
Struts2应用开发详解--10、动态方法调用和使用通配符定义
2010-09-22 01:42 937Struts2的action默认调用方法为execute()。 ... -
Struts2应用开发详解--9、指定多个配置文件
2010-09-22 00:49 827复杂的系统开发会有很多的action配置。为便于管理开发中应该 ...
相关推荐
而Middlegen则是与Hibernate配套使用的工具,它能自动生成Hibernate的持久层代码,大大提升了开发效率。本文将深入探讨Middlegen-Hibernate-r5这一版本,揭示它们如何协同工作,为开发者带来便利。 一、Middlegen...
【标题】"Middlegen-Hibernate-r5,hibernate-extensions-2.1.3" 涉及的是两个重要的Hibernate相关工具:Middlegen和Hibernate Extensions,这两个工具都是在开发基于Java的数据库应用程序时使用的辅助工具。...
Middlegen-Hibernate的结合使用,使得开发者可以从繁琐的手动创建映射文件中解脱出来,专注于业务逻辑的实现,提高了开发效率。然而,值得注意的是,随着技术的发展,现代的ORM框架如Hibernate本身已经提供了逆向...
结合使用Hibernate扩展和Middlegen,开发人员可以更高效地进行数据库驱动的Java应用程序开发。它们降低了代码维护的复杂性,提升了开发速度,使得开发者能够将更多的精力集中在业务需求和创新上,而非基础架构的构建...
总结来说,hibernate-extensions和Middlegen-Hibernate是提高Hibernate开发效率的利器,它们通过自动化的方式,帮助开发者快速生成数据库映射文件和Java实体类,使得开发工作更加高效和便捷。合理利用这两个工具,...
然而,值得注意的是,尽管Middlegen简化了开发流程,但其自动生成的代码可能并不完全符合项目的特定需求,因此在实际使用中,往往需要对生成的代码进行适当的调整和优化。 总结来说,Hibernate扩展Middlegen-...
在Middlegen-Hibernate-r5.rar中,我们可以找到该版本的Middlegen,它支持最新的数据库模式和Hibernate特性,简化了开发人员从数据库到Java对象的转换过程,大大提高了开发效率。 接下来,我们转向Hibernate,一个...
Hibernate的Middlegen-Hibernate-r5工具包可以生成映射文件及POJO文件,简化开发。... 关于Hibernate的关系映射,其中除了注解方式,还可以通过XML方式,此文件是根据数据库生成XML文件的一种工具。...
在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,对于初学者或者开发者来说,正确配置和使用Hibernate可能会遇到一些挑战。Middlegen是针对Hibernate的一个自动化...
Middlegen和Hibernate Extensions是两个与Hibernate相关的工具,它们进一步扩展了Hibernate的功能,提升了开发效率。 **Middlegen** 是一个自动化建模工具,它可以从现有的数据库中生成Hibernate的映射文件(.hbm....
综上所述,Hibernate、Hibernate3、Hibernate-Annotations和Middlegen-Hibernate-r5构成了一个强大的Java ORM解决方案,它们共同解决了Java应用中的数据库持久化问题,大大简化了开发流程,提高了开发效率。...
综上所述,这个压缩包中的资源旨在帮助开发者搭建一个基于Spring的、使用Hibernate作为ORM工具的开发环境,并通过Middlegen进行数据库建模,进一步利用Hibernate的扩展功能提升开发效率和应用程序性能。这样的组合在...
总之,Middlegen是Hibernate3开发中的一个强大辅助工具,它可以简化数据库到Java代码的映射过程,提高开发效率。理解如何使用Middlegen对于任何使用Hibernate进行数据库操作的Java开发者来说都是十分重要的。
总结来说,这些压缩包中的资源对于使用Eclipse进行Hibernate开发的人员来说是非常宝贵的。Middlegen简化了数据库到Java模型的转换,Hibernate的注解支持让代码更易读,而Hibernate Extensions则提供了丰富的额外功能...
"Middlegen"是一款基于Java的开源工具,专为简化Hibernate对象关系映射(ORM)框架的使用而设计。它作为一个集成开发环境(IDE)插件,帮助开发者自动生成Hibernate配置文件、Java实体类以及数据库脚本,从而极大地...
关系映射XML生成工具,如"Middlegen-Hibernate-r5",则是为了简化这一过程而设计的。这些工具能够自动生成Hibernate所需的配置文件,包括映射文件(.hbm.xml),这些文件定义了Java类和数据库表之间的映射关系。 ...
Middlegen是一款强大的工具,它能够自动将数据库的表结构映射为Java实体类,并生成相应的Hibernate配置文件,极大地简化了开发过程中的数据访问层构建。在这个“Middlegen映射Table到实体类 配置 Jar包”中,我们将...
本文档《Hibernate开发指南》作为一本手册,为开发者提供了一个全面的入门和进阶Hibernate使用的途径。 首先,准备工作阶段需要下载并安装Ant软件包,将它的bin目录添加到系统PATH中,以便于后续的操作。此外,还...