Hibernate配置(一):用MiddleGen生成映射文件和用hbm2java生成pojo

2024-02-12 16:38

本文主要是介绍Hibernate配置(一):用MiddleGen生成映射文件和用hbm2java生成pojo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、准备工作
1、下载Hibernate、Hibernate-Extension和Middlegen-Hibernate。
个人认为这三个软件的配置和版本有一定的关联,建议初次配置时使用以下版本:hibernate-2.1.7、Middlegen-Hibernate-r5、hibernate-extensions-2.1.3,下面的配置方法就是针对这三个版本的。差点忘了说下下载地址了, http://prdownloads.sourceforge.net/hibernate/
2、下载ant软件包。
3、当然JDK环境也不能少的。

二、配置环境变量(我的电脑->系统属性->高级->环境变量)
增加JAVA_HOME=jdk的安装目录(如c:/jdk)
修改path,在path变量值最后加上d:/ant/bin;c:/jdk/bin
进入cmd输入ant,如果出现下面情况说明ant不可用。

Buildfile:build.xml does not exist!

Build failed

三、构建映射文件和POJO
将Hibernate、Hibernate-Extension和Middlegen-Hibernate三个文件解压到d:/Hiernate目录中。
1、由数据库生成映射文件,数据库使用MYSQL
建立数据库sample和表t_user,t_user中包括两个字段:自增主键"id"和用户名字段"name"。
1)、将数据库驱动(如:mysql-connector-java-3.0.17-ga-bin.jar)放入MiddleGen目录下lib/的子目录下,进入MiddleGen目录下的config/database子目录,打开mysql.xml,作如下修改(<!--  -->格式段落为注释):

<!--数据库驱动文件路径-->
<property name="database.driver.file"           value="${lib.dir}/mysql-connector-java-3.0.17-ga-bin.jar"/>

<!--数据库URL-->
<property name="database.url"                   value="jdbc:mysql://localhost/sample"/>

<!--数据库用户名-->
<property name="database.userid"                value="root"/>

<!--数据库密码-->
<property name="database.password"              value="root"/>

2)、修改MiddleGen目录下的build.xml构建文件
  • 目录数据库配置文件地址
    查找关键字"!ENTITY",得到
    <!ENTITY database SYSTEM "file:./config/database/hsqldb.xml">
     默认情况下,MiddleGen采用的都是hsqldb.xml,将其修改成我们所用的数据库配置文件(mysql.xml)
    <!ENTITY database SYSTEM "file:./config/database/mysql.xml">
  • Application Name
    查找"airline",得到
    <property name="name" value="airline"/>

    "airline"是MiddleGen配置中默认的Application Name,将其改为我们所定义的名称(如HibernateSample):
    <property name="name" value="HibernateSample"/>
  • 映射文件输出目录
    查找name="build.gen-src.dir",得到
    <property name="build.gen-src.dir"              value="${build.dir}/gen-src"/>

    修改value="${build.dir}/gen-src"使其指向我们所期望的目录中(如d:/Hibernate/src):
    <property name="build.gen-src.dir"              value="d:/Hibernate/src"/>
  • 对应该代码的package name
    查找"destination",得到

    <hibernate
                destination="${build.gen-src.dir}"
                package="${name}.hibernate"
                genXDocletTags="false"
                genIntergratedCompositeKeys="false"
                javaTypeMapper=
    "middlegen.plugins.hibernate.HibernateJavaTypeMapper"
             />


    将其改成我们所需要的package:

    <hibernate
                destination="${build.gen-src.dir}"
                package="com.leafdly"
                genXDocletTags="true"
                genIntergratedCompositeKeys="false"
                javaTypeMapper=
    "middlegen.plugins.hibernate.HibernateJavaTypeMapper"
             />

  • 查找<path id="lib.class.path">,得到

    <path id="lib.class.path">
          <pathelement path="${database.driver.classpath}"/>
          <fileset dir="${lib.dir}">
             <include name="*.jar"/>
          </fileset>
          <!-- The middlegen jars -->
          <!--fileset dir="${basedir}/.."-->
          <fileset dir="${basedir}/middlegen-lib">
             <include name="*.jar"/>
          </fileset>
       </path>


    追加Hibernate和Hibernate-Extensions的类包,如下所示:

    <path id="lib.class.path">
          <pathelement path="${database.driver.classpath}"/>
          <fileset dir="${lib.dir}">
             <include name="*.jar"/>
          </fileset>
          <fileset dir="${basedir}/middlegen-lib">
             <include name="*.jar"/>
          </fileset>

       <pathelement path="../hibernate-2.1.7/hibernate2.jar"/>
       <fileset dir="../hibernate-2.1.7/lib">
             <include name="*.jar"/>
          </fileset>
       <pathelement path="../hibernate-extensions-2.1.3/tools/hibernate-tools.jar"/>
       <fileset dir="../hibernate-extensions-2.1.3/tools/lib">
             <include name="*.jar"/>
          </fileset>

       </path>


    build.xm配置完毕!

      3)、进入CMD,切到Middlegen-Hibernate目录下(如:D:/Hibernate/Middlegen-Hibernate-r5),输入ant(运行build.xml),即将出现Middlegen界面。如果没有出现大多数都是因为jdbc驱动没有按要求放入lib目录下,注意驱动的文件名必须和/config/database/mysql.xml中"database.driver.file vlaue="中的一致。熟悉一下各项参数,最后单击窗口项部的'Generate'按钮,即能生成数据库中所有表所对应的映射文件,在d/Hibernate/src/com/leafdly/目录中发现Tuser.hbm.xml文件。

  2、配置hbm2java且生成映射文件对应的POJO
     1)、进入hibernate-extensions目录下tools/bin打开setenv.bat文件.

  • 查找'set JDBC_DRIVER',得到
    set JDBC_DRIVER=C:/Progra~1/SQLLIB/java/db2java.zip;C:/mm.mysql-2.0.14/mm.mysql-2.0.14-bin.jar

    修改成:
    set JDBC_DRIVER=C:/Progra~1/SQLLIB/java/db2java.zip;D:/Hibernate/Middlegen-Hibernate-r5/lib/mysql-connector-java-3.0.17-ga-bin.jar
  • 查找'set HIBERNATETOOLS_HOME',得到
    set HIBERNATETOOLS_HOME=%~dp0..

    修改成:
    set HIBERNATETOOLS_HOME=D:/Hibernate/hibernate-extensions-2.1.3/tools
  • 查找'if "%HIBERNATE_HOME%"',在其所在段落上新加一行,加入下面一条语句:
    set HIBERNATE_HOME=D:/Hibernate/hibernate-2.1.7
  • 查找'set CP',得到
    set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%/hibernate2.jar;%CORELIB%/commons-logging-1.0.3.jar;%CORELIB%/commons-lang-1.0.1.jar;%CORELIB%/cglib-2.0-rc2.jar;%CORELIB%/dom4j-1.4.jar;%CORELIB%/odmg-3.0.jar;%CORELIB%/xml-apis.jar;%CORELIB%/xerces-2.4.0.jar;%CORELIB%/xalan-2.4.0.jar;%LIB%/jdom.jar;%CORELIB%/commons-collections-2.1.jar;%LIB%/../hibernate-tools.jar

    将CP中的各项值改为相对应的,(如:cglib-2.0-rc2.jar,应改为cglib-full-2.0.2.jar),具体参考下面:
    set CP=%CLASSPATH%;%JDBC_DRIVER%;%HIBERNATE_HOME%/hibernate2.jar;%CORELIB%/commons-logging-1.0.4.jar;%CORELIB%/commons-lang-1.0.1.jar;%CORELIB%/cglib-full-2.0.2.jar;%CORELIB%/dom4j-1.4.jar;%CORELIB%/odmg-3.0.jar;%CORELIB%/xml-apis.jar;%CORELIB%/xerces-2.4.0.jar;%CORELIB%/xalan-2.4.0.jar;%LIB%/jdom.jar;%CORELIB%/commons-collections-2.1.1.jar;%LIB%/../hibernate-tools.jar

     2)进入CMD到hibernate-extensions目录下的/tools/bin子目录中,输入hbm2java D:/Hibernate/src/com/leafdly/Tuser.hbm.xml --output=D:/Hibernate/src(注意映射文件的目录要正确)。在D:/Hibernate/src中将发现多了一个Tuser.java文件,OK,POJO生成了。!

这篇关于Hibernate配置(一):用MiddleGen生成映射文件和用hbm2java生成pojo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/703058

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

Java中ArrayList和LinkedList有什么区别举例详解

《Java中ArrayList和LinkedList有什么区别举例详解》:本文主要介绍Java中ArrayList和LinkedList区别的相关资料,包括数据结构特性、核心操作性能、内存与GC影... 目录一、底层数据结构二、核心操作性能对比三、内存与 GC 影响四、扩容机制五、线程安全与并发方案六、工程

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2