- 浏览: 167794 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
小桔子:
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 340简介 Kafka 是一种高吞吐的分布式发布订阅消息系统, ... -
Ubuntu为Tomcat启用80端口
2012-09-11 15:05 10077一、tomcat部署调试 Update the pac ... -
MyEclipse配置IvyDE
2012-03-28 14:16 2195从以下地址下载eclipse,http://www.eclip ... -
Ubuntu 安装jdk
2012-02-19 18:58 890方法一:安装开源jdk 先运行执行java 或者javac测 ... -
JSTL 1.2.x guide
2011-05-03 23:47 1537JSTL 1.2.x is the latest versio ... -
nutch二次开发环境搭建
2011-05-03 17:05 1455本文在总结使用nutch1.2框架做二次开发实验中总结出开发环 ... -
NutchBean构造方法解析
2011-05-02 16:47 1155NutchBean(Configuration conf, P ... -
页面浮动窗口效果实现
2011-03-23 10:44 1701<style type="text/cs ... -
Lucene+Nutch搜索引擎开发一:介绍
2011-02-22 18:34 1035本系列文章是Lucene+Nutch学习、实现的记录,适用于有 ... -
Spring应用开发:控制反转实现(IOC)原理
2010-12-05 22:03 1036IOC的核心接口是BeanFactory,它的职责包括实例化、 ... -
Apache Axis2实现WebService在J2EE中的应用
2010-12-05 22:00 671整理中。。。。 -
Struts2应用开发详解--17、对国际化的支持。
2010-09-22 22:57 879国际化的支持建立在系统语言环境参数基础上,Struts框架会根 ... -
Struts2应用开发详解--16、对Action中的方法进行校验
2010-09-22 22:52 993struts2的校验可以用两种方式实现: 一、java代码实 ... -
Struts2应用开发详解--15、自定义拦截器
2010-09-22 22:51 1173拦截器在实际开发中经常用到,典型的应用如对全局环境的权 ... -
Struts2应用开发详解--14、文件上传和下载
2010-09-22 22:51 764一、文件上传 Struts2的文件上传需要common ... -
Struts2应用开发详解--13、访问或者添加属性
2010-09-22 22:49 738Struts2中摒弃掉了Struts1中对servlet各种对 ... -
Struts2应用开发详解--12、自定义类型转换器
2010-09-22 22:48 730struts2中 1、局部类型转换器 2、全局 ... -
Struts2应用开发详解--11、请求参数的接收
2010-09-22 02:02 1068Struts2中请求参数以action属性的方式被初始化赋值。 ... -
Struts2应用开发详解--10、动态方法调用和使用通配符定义
2010-09-22 01:42 897Struts2的action默认调用方法为execute()。 ... -
Struts2应用开发详解--9、指定多个配置文件
2010-09-22 00:49 809复杂的系统开发会有很多的action配置。为便于管理开发中应该 ...
相关推荐
Middlegen-Hibernate-r5.zip
Middlegen-Hibernate配合apache-ant-1.7.0-bin.tar来完成hibernate培植文件的生成。
hibernate-extensions-2.1.3.zip ,middlegen for hibernate
包括 Middlegen-Hibernate-r5 hibernate-extensions-2.1.3
Hibernate的Middlegen-Hibernate-r5工具包可以生成映射文件及POJO文件,简化开发。... 关于Hibernate的关系映射,其中除了注解方式,还可以通过XML方式,此文件是根据数据库生成XML文件的一种工具。...
Middlegen和Hibernate extensions
hibernate-extensions和Middlegen-Hibernate的jar包 方便快捷地根据现有数据库导出库表结构,并生成对应的映射文件和POJO代码
hibernate-annotations-3.1beta6 hibernate3 Middlegen-Hibernate-r5
Middlegen-Hibernate-r5.rar
spring-framework-5.0.1.RELEASE-dist.zip,Middlegen-Hibernate-r5.zip,hibernate-extensions-2.1.3.zip
参考文档:http://blog.csdn.net/xing_sky/article/details/8181490
NULL 博文链接:https://canofy.iteye.com/blog/305493
Hibernate中的Middlegen入门指南
hibernate-extensions-2.1.2.zip hibernatetutorial.zip Middlegen-Hibernate-r4.zip Middlegen-Hibernate-r4.zip
开发一个Hibernate时有几个工具还是挺好用的 1. Middlegen-Hibernate,用来自动生成对象映射的配置文件。感觉配置起来也挺麻烦的,不过对于有一大坨的mapping对象的cfg文件来说倒是很省事的,关键是避免出错了。 2...
NULL 博文链接:https://skiof007.iteye.com/blog/1796910
8.2 根据数据库定义生成映射文件——MiddleGen 8.3 Hibernate官方工具 8.4 XDoclet-同步Hibernate基础代码 8.5 工具的使用周期 第9章 Hibernate XDoclet模板配置 9.1 IDEA 9.2 Eclipse 第10章 Hibernate益友...
Middlegen-Hibernate-r5 Hibernate关系映射XML生成工具,MYSQL数据库的生成配置文件已经做好。