使用Eclipse Hibernate插件逐步为POJO域Java类和hbm自动生成代码

概述:

在本教程中,我们将使用Eclipse Hibernate工具自动生成域对象和相应的hbm xml文件。 如果您正在处理大型或中型项目,并且开始时有超过5个以上的表,则可能会发现此插件是自动生成映射域对象java文件和相应* .hbm.xml的绝佳工具文件容易。 您可以在项目中轻松使用它们。 对于具有2个或3个表的非常小的项目,您可能需要手动创建这些文件,但是,如果一个表或多个表中有大量字段要处理,则此工具是节省时间和节省时间的工具。

使用的工具:

1.针对Web开发人员的Eclipse Indigo Java EE IDE
2.休眠3
3. Hibernate Tools Eclipse插件版本3.5.1 4. Mysql JDBC jar(mysql-connector-java-5.1.23)

步骤-1:为Eclipse安装Hibernate插件

根据您的Eclipse版本从jboss站点安装hibernate插件。 我使用了Eclipse Indigo版本。 在Eclipse的菜单栏中,转到“帮助”->“安装新软件”,对于Indigo,转到http://download.jboss.org/jbosstools/updates/indigo/下载Hibernate插件并进行安装。
安装完成后,您将在“已安装的软件”部分中找到它,并在Eclipse中看到新的视角。

图片0011

Hibernate的Eclipse透视图-

图片0031

步骤2:配置插件以连接到数据库以生成代码

例如,我已经创建了一个动态Web应用程序PersonalPhotoAlbumApp,并已在其中复制了所需的jar文件到WEB-INF / lib文件夹中。 如果您有其他项目,则可以将jar(与Hibernet相关的必需jar文件和mysql连接器jar)保存在项目文件夹或外部文件夹中,但请记住,它应该位于公认的类路径中。
创建项目后,切换到Hibernate透视图。 然后转到File-> New->'Hibernate Console Configuration'。 稍后,您的插件将需要此控制台配置,以便基于数据库表映射生成代码。

图片0051

单击“设置”按钮以创建一个新的hibernate.cfg.xml文件,该文件将存储您的数据库连接信息以供插件使用。 要生成域对象或hbm文件,不需要hibernate.cfg.xml文件,因为您可以从下拉列表中选择其他数据库配置。 为简单起见,我遵循了这一步骤。

图片0071

选择名称和路径以将hibernate.cfg.xml文件存储在Java / J2EE项目中。 填写所需的连接信息以连接到数据库。

图片0091

image0111

image0131

如果一切正常,您将在下面看到以下屏幕,您可以看到表格。 我的数据库“ tctalk_apps_photoalbum”中有两个表,分别是“相册”和“ phototbl”,您可以看到该工具正在显示。 如果在连接数据库时遇到任何错误,请检查* .cfg.xml文件,以查看是否有错误或键入您填写的信息。

image0151

步骤3:创建休眠反向工程配置文件

遵循在您的项目中创建reveng.xml的步骤,这将帮助该工具进行反向工程以生成域Java对象(PO​​JO类)和相应的* .hbm.xml文件(此文件存储表字段以及与这些字段的必需映射) POJO)。

图片0171

image019

如果在左侧面板中看不到数据库架构和表,请单击“刷新”。 选择您要生成域代码的表,然后单击“包括”以在右侧面板中添加。

image021

步骤4:创建休眠代码生成配置

此配置将使用reveng.xml生成域对象/ POJO和* .hbm.xml文件的Java代码,并将保留在您要标识的输出文件夹中。 请遵循以下步骤。

单击工具栏中的特定于休眠的微小运行图标,以从菜单中选择“休眠代码生成配置”选项。

image023

选择“新启动配置”以创建一个新的。 该图标非常小,带有“ +”符号。

image025

您需要选择要在其中生成域POJO java类以及* .hbm.xml文件的软件包。 还要选择您在上一步中创建的reveng.xml。

image027

单击“主”旁边的下一个选项卡“导出器”,以选中“域代码”和“休眠XML映射(.hbm.xml)”复选框。

image029

单击“运行”,您可以在状态栏中看到它正在运行。

image031

步骤5(可选步骤):分离出POJO类和hbm文件以实现更好的可维护性

以下步骤是可选的。 此步骤只是为了美化项目文件夹和程序包的结构,以实现更好的可维护性。 如果对同一文件夹中的POJO和hbm文件没有问题,则可以跳过此步骤,直接转到步骤6,然后开始进行愉快的编码。 如果您认为需要为Java POJO类保留不同的程序包,并为* .hbm.xml文件保留单独的文件夹,请执行此步骤。

打开选择为输出文件夹的软件包,您将看到自动生成的类和hbm xml文件。

image033

选择所有Java POJO类,然后右键单击并选择Refactor-> Move以将它们移至所需的包。 在我们的案例中,我希望它们位于businessobjects包中,因此将它们移到那里。

图片035

移动Java类后,我选择了每个类并重命名了它们以附加BO,以将它们标记为业务对象类。

image037

由于hbm文件位于不同的程序包中,而java业务对象类位于不同的文件夹中,因此hibernate需要知道这一点。 否则它将找不到它们。 为此,我们需要在hibernate.cfg.xml文件中添加与每个POJO类及其对应的hbm.xml文件相对应的标记。

image039更新

还打开* .hbm.xml文件,并使用类的完整程序包名称更改。 对于AlbumBO类,我将Album.hbm.xml文件中的类路径更改为

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Apr 22, 2013 1:26:40 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping><class name="com.tctalk.apps.album.db.businessobjects.AlbumBO" table="album" catalog="tctalk_apps_photoalbum"><id name="albumid" type="java.lang.Integer"><column name="albumid" /><generator class="identity" /></id><property name="albumname" type="string"><column name="albumname" length="55" not-null="true" /></property><property name="albumdesc" type="string"><column name="albumdesc" length="65535" not-null="true" /></property><property name="albumcreatedate" type="date"><column name="albumcreatedate" length="10" not-null="true" /></property></class>
</hibernate-mapping>

步骤6:从项目中删除hibernate.reveng.xml反向工程文件

image041

参考: TechCubeTalk博客上使用 JCG合作伙伴 Suvoraj Biswas的Eclipse Hibernate插件,逐步为POJO域Java类和hbm生成了自动代码 。

翻译自: https://www.javacodegeeks.com/2013/10/step-by-step-auto-code-generation-for-pojo-domain-java-classes-and-hbm-using-eclipse-hibernate-plugin.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea本地跑如何看gc日志_线上故障如何快速排查?来看这套技巧大全

简介&#xff1a;有哪些常见的线上故障&#xff1f;如何快速定位问题&#xff1f;本文详细总结工作中的经验&#xff0c;从服务器、Java应用、数据库、Redis、网络和业务六个层面分享线上故障排查的思路和技巧。较长&#xff0c;同学们可收藏后再看。前言线上定位问题时&#x…

从零打造在线版H5页面生成器

想必你一定使用过易企秀或其它微场景生成工具制作过炫酷的h5页面&#xff0c;除了感叹其神奇之处有没有想过其实现方式呢&#xff1f;从设计者的角度来看待问题&#xff0c;会有不一样的收获&#xff0c;本文将从零开始&#xff0c;使用node技术来设计实现一款精简版的易企秀 G…

使用Struts2,Hibernate和MySQL BLOB开发个人迷你相册应用程序–第1部分

概述&#xff1a; 在本研讨会中&#xff0c;我们将开发一个Web应用程序&#xff0c;可用于创建漂亮的照片库。 您可以将其托管在Web服务器中&#xff0c;也可以在自己的PC中使用以维护和管理照片集。 使用本教程&#xff0c;您将能够了解与Struts2和Hibernate相关的以下重要内容…

基于 Webpack2、Vue2、iView2 的可视化脚手架 iView Cli 发布 2.0 版本

谷歌今天发布了一系列“性感”的软件&#xff0c;我们也发布了一款大家期待已久的开发者工具&#xff0c;同样很性感 &#xff1a;) iView 2.0 已经发布有两个月了&#xff0c;在 2.0 发布后&#xff0c;npm 下载量、issues 数量都提升了很多&#xff08;可以 watch 下项目&…

在OSGi中为Karaf构建Camel-CXF REST服务–组播和聚合

请查看我在Karaf的OSGi中构建普通CXF服务&#xff08;不使用Camel&#xff09;的其他文章 。 这是有关如何 创建一个CXF REST服务 使用骆驼多播&#xff08;并并行化&#xff09;传入的请求 来自两个不同服务的源数据 汇总响应并 最后将合并结果作为JSON返回给最终用户。…

cgcs2000大地坐标系地图_为什么要从北京54和西安80统一到CGCS2000?测绘人必知!...

导 读北京54坐标和西安80坐标&#xff0c;使用了很多年&#xff0c;为何要统一成CGCS2000坐标&#xff1f;启用CGCS2000坐标有何重大意义&#xff1f;概述北京54坐标系和西安1980坐标系的建立极大的促进了新中国测绘的发展,然而随着空间大地测量技术的兴起,这两种经典的局部大地…

Amazon Elastic Map Reduce使用Apache Mahout计算建议

Apache Mahout是一个“可扩展的机器学习库”&#xff0c;其中包含各种单节点和分布式推荐算法的实现。 在我的上一篇博客文章中&#xff0c; 我描述了如何在单个节点上实现在线推荐系统来处理数据。 如果数据太大而无法放入内存&#xff08;> 100M首选项数据点&#xff09;怎…

基于element-ui实现table可配置化

写在前面 感谢 饿了么前端团队提供组件化框架elememt-ui&#xff0c;本文基础组件使用element-ui。 大背景 在开发一些系统过程中&#xff0c;使用table作数据展示在所难免。先来看看el-table组件。 非常简单易用的组件&#xff0c;根据提供的data数据&#xff0c;配置table…

麟龙指标通达信指标公式源码_通达信指标公式源码波段极限副图源码

做价值的传播者&#xff0c;一路同行&#xff0c;一起成长问题&#xff1a;怎样才能每天都收到这类文章&#xff01;答案&#xff1a;只需点击上方《通达信公式指标》{买卖公式}AA:(2*CHIGHLOW)/4;BB:AA-REF(C,12);CC:EMA(BB,13);DD:EMA(CC,2);EE:EMA(BB,34);FF:EMA(BB,55);GG:…

计算机系统备份的原则和策略,计算机系统数据备份机制与策略

计算机系统数据备份机制与策略20年第5 05期华中电力第 l卷 8计算机系统数据备份机制与策略耿煜(樊学院机械系&#xff0c;北襄樊襄湖 4 15 ) 4 03摘要&#xff1a;针对当今计算环境中不断增长的数据量&#xff0c;系统地分析、论述了完整的数据备份机制&#xff0c;出了相应的策…

[译] 帮助你成为一名成功的 Web 开发工程师的 21 步

前言 随着 Web 开发的蓬勃发展&#xff0c;许多人都在问这样一个问题&#xff1a;我如何才能成为一名 Web 开发者&#xff1f;我认为这个问题不应该这样问&#xff0c;而应该是&#xff1a;我如何才能成为一名成功的 Web 开发者&#xff1f;这样的问题是很有必要的&#xff0c;…

循环卷积和周期卷积的关系_基于单口RAM读写的卷积电路(下)

这是迟到很久的卷积电路verilog设计的下篇。。。你看我还有机会吗。。。上回我们给出系统的层次结构、卷积计算模块以及用于数据缓存的fifo模块&#xff0c;今天我们首先回顾一下上一次的关键内容。系统结构回顾RTL代码文件可以分为结构如下所示 ~|--top_conv_tb.v|--top_conv.…

浅析 PHP 中的 Generator

浅析 PHP 中的 Generator Miss Wang php开发案例 前天 何为 Generator 从 PHP 5.5 开始&#xff0c;PHP 加入了一个新的特性&#xff0c;那就是 Generator&#xff0c;中文译为生成器。生成器可以简单地用来实现对象的迭代&#xff0c;让我们先从官方的一个小例子说起。 xrange…

注意安全!XSS 和 XSRF

[Tips] 本文是从 jianshu 平台重新修改编辑后移植来的&#xff0c;比上一版本做了些修订。 最近在看一些关于网络安全的问题&#xff0c;当然许多是跟前端相关的&#xff0c;包括且不局限于xss和xsrf 了&#xff0c;那么小编就结合最近的学习实践谈一些粗浅的认识。&#xff08…

go分析和kegg分析_干货预警:3分钟搞定GO/KEGG功能富集分析(2)

在 3分钟了解GO/KEGG功能富集分析 一文中给大家讲解了GO和KEGG的基本概念和内涵,并且给大家介绍了DAVID这一神奇网站。今天我们就把GO/KEGG功能富集分析的详细教程按部就班地呈现给大家,有请小猎豹。 多图预警,轻点图片,查看高清大图 1 Step1: 打开DAVID官网:https://dav…

如何在本地开发环境调试微信 JS-SDK

以下篇幅将会描述不同前提下对应的调试策略&#xff0c;当然也有可能不是最优解&#xff0c;望斧正 →_→ 前言 何谓「安全域名限制」&#xff1f; 以微信 JS-SDK 的使用为例&#xff0c;每个公众号被限制最多可设置三个安全域名&#xff0c;且必须能被腾讯服务器所验证&#…

云南省农村信用社计算机岗位待遇如何,云南农村信用社薪资待遇如何?

在云南如果去存钱&#xff0c;相信大多数人都会把自己的小钱钱存在农村信用社而不是XX银行。在这一块风景秀丽&#xff0c;人美山美水美的地方&#xff0c;就金融行业来说云南农村信用社要是说自己差&#xff0c;那基本没有谁敢说自己做的好。所以在云南农信社这家企业里做一名…

小票上为啥指甲能划出印_指甲上出现竖纹,除遗传问题,或是身体在向你拉警报了,别忽视...

生活中常见女生给指甲抹上各种不同的颜色来让它变得美美的&#xff0c;指甲起着修饰人的形象的作用。而指甲的状况也能折射出身体的健康状态如何。每个人的指甲形态不一&#xff0c;有的润滑饱满&#xff0c;光滑平整&#xff0c;有月牙&#xff1b;有的坑坑洼洼&#xff0c;凸…

require.context

带表达式的 require 语句 如果你的 require参数含有表达式(expressions)&#xff0c;会创建一个上下文(context)&#xff0c;因为在编译时(compile time)并不清楚具体是哪一个模块被导入 require("./template/" name ".ejs");webpack 解析 require() 的…

使用JSF 2.2功能来开发可滚动,可延迟加载的Ajax数据表

这次&#xff0c;我想与您分享我最近从JSF 2.2功能中学到的知识。 为此&#xff0c;我决定创建一个简单的ajax&#xff0c;可滚动的延迟加载数据表。 请注意&#xff0c; 绝不这是相当大的库如Primefaces &#xff0c; RichFaces的或ICEFaces的 。 这只是为了告诉您我学到了什…