`
火云剑Shanke
  • 浏览: 68014 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于Ant+Hibernate Tools 的实体层生成方案

阅读更多
生成方案以DB-->hbm.xml-->Pojo为例

ant的build文件
<?xml version="1.0"  encoding="UTF-8" ?>
<project name="kums-Hibernate" basedir="." default="hibernatecode">
	<property name="build.classpath" location="D:\jdk1.5.0_03" />
	<property name="src.dir" location="../../src" />
	<property name="build.dir" location="${app.dir}/WEB-INF/classes" />
	<property name="lib.dir" location="${app.dir}/WEB-INF/lib" />

         <!-- 引用的库 -->
	<path id="toolslib">
		<path location="lib/hibernate-tools.jar" />
		<path location="lib/hibernate3.jar" />
		<path location="lib/commons-logging.jar" />
		<path location="lib/dom4j-1.6.1.jar" />
		<path location="lib/ojdbc14.jar" />
		<path location="lib/commons-collections-3.2.1.jar" />
		<path location="lib/freemarker.jar" />
		<path location="lib/jtidy-r8-20060801.jar" />
	</path>

	<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="toolslib">
	</taskdef>

	<target name="hibernatecode">
		<hibernatetool destdir="${src.dir}/generated">
			<jdbcconfiguration propertyfile="${src.dir}/hibernate.properties" packagename="com.kurui.kums._entity" />
			<!--由DB导出hbm.xml文件-->
			<hbm2hbmxml />
			<!-- 由hbm.xml文件生成POJO文件 -->
			<hbm2java jdk5="true" />
			<!-- 生成配置文件 -->
			<hbm2cfgxml ejb3="false" />
			<!-- 生成的dao -->
			<hbm2dao />
		</hibernatetool>
	</target>
</project>


问题
1.org.hibernate.cfg.JDBCBinderException: Duplicate class name 'com.kurui.kums._entity.Countries' generated for 'org.hibernate.mapping.Table(SH.COUNTRIES)'. Same name where generated for 'org.hibernate.mapping.Table(SH.COUNTRIES)'

Oracle下见此问题,在hibernate.properties里加上hibernate.default_schema=username 即可

2.表较多的情况下,可否将生成的hbm.xml和Pojo指定到不同的目录下?

3.关于使用模版。
实际需求中往往还需要为PoJo生成的过程中定义一些规则(首字母、前缀等、自定义代码等),网上资料看都提到了使用模版,如下:

<!--运用模板生成自己想要的类-->          
           
<hbmtemplate templatepath="template" template="dao/daohome"
                filepattern="{package-name}/{class-name}Dao.java">
                <property key="ejb3" value="false"/>
                <property key="jdk5" value="true"/>
            </hbmtemplate> 


生成pojo类,其实hbm2java,hbm2dao都是hbmtemplate的一个简化版本,可以用宏理解
其中hbm2java等价于:但是此处的模板位置都是在heibernate-tool.jar中。如果需要自定义模板,则需要明确编写hbmtemplate。

<hbmtemplate    templateprefix="pojo/"    template="pojo/Pojo.ftl"         
    filepattern="{package-name}/{class-name}.java"> 
    <property key="jdk5" value="true" /> 
    <property key="ejb3" value="true" />
 </hbmtemplate>
      

或者是
<hibernatetool destdir="${build.dir}/generated"> 
<classpath/> 
<configuration configurationfile="hibernate.cfg.xml"/> 
<!-- 用户模板 --> 
<hbmtemplate exporterclass="my.own.Exporter" filepattern="."/> 
</hibernatetool>

我的问题是,Pojo.ftl和exporterclass如何定义、如何引用,可有案例可供参阅?

​原文链接:https://riboseyim.github.io?source=iteye&pid=hibernate


分享到:
评论

相关推荐

    使用HibernateTools+Ant全自动生成实体类和数据库

    利用hibernate-Tools里的相关工具类,使得java实体类(POJO)、hbm映射文件、数据库表(Schema)之间可以相互转化。也就是说,只要有其中一样,就可以通过各种途径得到其它两样。如果手里已经有了其中一样东西,要想...

    hibernate tools源码运行或修改需要的jar

    2. **Hibernate Tools**:作为Hibernate的一部分,它提供了与IDE集成的插件,如Eclipse和IntelliJ IDEA,帮助开发者生成和维护Hibernate相关的代码,比如实体类、映射文件、DAO层代码等。 3. **源码获取**:从描述...

    HibernateTools-3.2.4.Beta1-R200810311334.zip

    1. **代码生成器**:能够自动生成基于Hibernate的实体类、DAO层和配置文件,减少了手动编写大量重复代码的工作量,提高了开发效率。 2. **逆向工程**:可以从现有的数据库中生成Hibernate映射文件和Java类,使已有的...

    Hibernatetools_Reference_Guide

    《Hibernatetools_Reference_Guide》是一份由JBoss官方提供的详细文档,旨在指导开发者如何使用Hibernate Tools来自动生成与Hibernate框架相关的Java代码。该文档版本为3.0.0.CR1,覆盖了从安装配置到具体使用的各个...

    HibernateTools 工具

    HibernateTools可以基于数据库表结构生成相应的Java实体类,这些类包含了字段和getter/setter方法,使得开发者能够方便地操作数据。此外,它还能根据需求生成一些额外的方法,如`toString()`、`equals()`和`hashCode...

    hibernateTools3.3

    1. **数据库反向工程**:hibernateTools3.3可以将现有的数据库表结构转换为Hibernate的实体类和映射文件,大大减少了手动编写这些代码的工作量。 2. **实体类和映射文件生成**:根据已有的Java类,工具可以自动生成...

    hibernatetools文档

    ### hibernatetools文档知识点概述 #### 一、引言 **Hibernate Tools**是一款针对Hibernate框架提供的增强工具集,旨在简化开发流程并提高开发效率。该工具集提供了丰富的功能来辅助开发人员进行代码生成、数据库...

    Struts+Hibernate入门实例(eclipse版)

    在Eclipse中整合Struts和Hibernate,首先需要安装相关的插件,如Struts2 Plugin和Hibernate Tools,这些插件提供了便捷的代码生成和配置辅助功能。 以下是创建Struts+Hibernate入门实例的基本步骤: 1. **创建项目...

    hibernatetools

    3. **Ant**:除了在Eclipse中使用外,还可以通过Ant脚本来执行hibernatetools的任务,这对于构建过程非常有用。 #### 四、代码生成架构 - **Hibernate Meta Model**:用于描述数据库模式和Java实体类之间的映射...

    HibernateTools-3.3.1.v201006011046R-H111-GA.zip

    开发者可以在ANT构建过程中调用相关的Hibernate Tools任务,如生成代码、生成DDL等,将这些操作集成到整个项目的构建流程中。 7. **版本兼容性**: 版本号3.3.1表明该工具集适用于较早的Hibernate和IDE版本。虽然...

    HibernateCore的代码生成、逆向工程、ant任务和更多工具___下载.zip

    Hibernate 提供了一套工具,可以自动生成基于数据库模式的Java实体类、Hibernate配置文件(`hibernate.cfg.xml`)以及持久化映射文件(`.hbm.xml`)。这些工具帮助开发者快速搭建项目,减少了手动编写重复代码的...

    Hibernate Tool 使用文档

    通过WTP,可以在Eclipse中创建Web项目,并利用Hibernate Tools来生成持久层代码。 - **Ant**:除了Eclipse IDE之外,Hibernate Tools也支持Ant脚本,这意味着开发者可以在构建过程中自动化地执行Hibernate Tools的...

    Hibernate使用xdoclet生成映射文件和sql语句

    XDoclet是基于Javadoc的元数据处理工具,它通过读取Java源代码中的特定注解,自动生成各种配置文件,包括Hibernate的.hbm.xml映射文件、EJB组件的部署描述符等。使用XDoclet,开发者无需手动创建和维护这些配置文件...

    根据映射文件生成实体类和ddl

    -- 配置HibernateTools包的路径 --&gt; &lt;path id="hibernate-tools.path"&gt; ${lib.dir}/hibernate-tools-3.2.4.ga.jar"/&gt; &lt;!-- 配置FreeMarker包的路径 --&gt; ${lib.dir}/freemarker.jar"/&gt; ...

    Hibernate中的Middlegen入门指南

    然后,将 hibernate2.1.8 下的 hibernate2.jar 及 lib 目录下的 jar 文件、hibernate-extensions 下的 hibernate-tools.jar 及 lib 目录下的 jar 文件、xdoclet-bin-1.2.3 下的 jar 文件全部拷贝到 middlegen- ...

Global site tag (gtag.js) - Google Analytics