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

相关文章

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

java如何解压zip压缩包

《java如何解压zip压缩包》:本文主要介绍java如何解压zip压缩包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解压zip压缩包实例代码结果如下总结java解压zip压缩包坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2