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集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏