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

eclipse创建pojo

概述:

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

使用的工具:

1.针对Web开发人员的Eclipse Indigo Java EE IDE
2.Hibernate3
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:创建Hibernate反向工程配置文件

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

图片0171

image019

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

image021

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

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

单击工具栏中的Hibernate专用小运行图标,从菜单中选择“Hibernate代码生成配置”选项。

image023

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

image025

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

image027

单击“主”旁边的下一个选项卡“导出器”,以选中“域代码”和“HibernateXML映射(.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

eclipse创建pojo

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

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

相关文章

c语言中x的n次方怎么表示_线性代数的本质及其在AI中的应用

线性代数是 AI 专家必须掌握的知识&#xff0c;这已不再是个秘密。如果不掌握应用数学这个领域&#xff0c;你永远就只能是「门外汉」。当然&#xff0c;学习线性代数道阻且长。数学&#xff0c;尤其是线性代数常与枯燥、复杂和毫无意义的事物联系起来。不过你还可以另辟蹊径。…

为什么在生产中进行调试是如此诱人?

生产调试 为什么在生产中进行调试是如此诱人&#xff1f; 在我的第一份工作中&#xff0c;我要做的任务之一是修复一个错误&#xff0c;该错误过去在非常复杂的生产系统中有时会发生。 很简单&#xff01; - 我想。 我将在开发环境中重现同样的情况&#xff0c;找到虚线&#x…

软件测试中需求分析谁去做的,软件项目在进入需求分析阶段,测试人员应该开始介入其中。 - 问答库...

问题&#xff1a;[判断题] 软件项目在进入需求分析阶段&#xff0c;测试人员应该开始介入其中。A . 正确B . 错误某男性患者&#xff0c;45岁&#xff0e;乡镇企业工人&#xff0c;因腹胀&#xff0c;尿少2周就诊。诉近年来体力下降较明显&#xff0c;易疲乏&#xff0c;时有右…

解码base64_linux C++ Base64编解码

Base64的由来目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时&#xff0c;系统之间的报文交互都需要使用Base64对明文进行转码&#xff0c;然后再进行签名或加密&#xff0c;之后再进行&#xff08;或再次Base64&#xff09;传输。那么&#xf…

java的for循环取出数据只是拿到最后一个_新兴大数据分析榆中百合

新兴大数据分析榆中百合大数据流程从流程角度上看&#xff0c;整个大数据处理可分成4个主要步骤。处理流程图分为三层(数据采集层&#xff0c;数据存储与计算处理层&#xff0c;数据可视化)&#xff1a;表2-1 系统环境系统版本Windows 10专业版(建议)LinuxCentOS 6.8 or CentO…

文件 服务器 pandas,疑难杂症-使用pandas_profiling查看EDA数据文档遇到的一些坑

最近在学习特征工程相关的东西&#xff0c;发现pandas_profiling这个包特别适合直观地能够展示数据地很多细节的地方&#xff0c;包括缺失值等相关信息。然后&#xff0c;我就开始折腾pip install pandas_profiling发现一下子把原本好好的环境(Anaconda3.5、Python3)给折腾坏了…

log4j 禁止类输出日志_log4j 2过滤spring日志遇到的问题

在项目中使用testng写单元测试&#xff0c;使用log4j输出日志&#xff0c;spring的日志也被打印出来&#xff0c;在调试的时候看到一片一片的spring日志很烦&#xff0c;总是要找自己的输出日志。这样式的~~~找了一下log4j2的日志过滤&#xff0c;很简单&#xff0c;在logger定…

c++冒泡排序代码_【开源推荐】数据结构和算法必知必会的50个代码实现

最近GitHub上发现了个非常不错的项目&#xff0c;目前star 4000&#xff0c;项目主要讲数据结构和算法&#xff0c;有多种语言 50个代码实现。实现语言有c&#xff0c;c#&#xff0c;go&#xff0c;java&#xff0c;javascript&#xff0c;object-c&#xff0c;python&#xff…

应用程序添加到服务器,在同一应用程序中的配置服务器和eureka服务器:尝试连接到localhost:8761...

我有一个spring-boot应用程序&#xff0c;可用于在开发和测试环境中设置a spring cloud config server和a eurekaserver。奇怪的是localhost:8761&#xff0c;即使我将其eureka.client.registerWithEureka设置为false&#xff0c;应用程序也总是尝试连接到。如何停用此功能&…

android 抽屉_Android Studio之路,我们来了解一下Google官方Android开发工具

记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了&#xff0c;所有重构了一下思路&#xff0c;覆写了一篇Google主推-Android开发利器——Android Studio&#xff0c;这可能是最全的AS教程&#xff01;Android Studio,自Google2013年发布以来&#xff0c;就…

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

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

10g gtx 光纤通信测试_光纤通信系统仿真实验

1实验四光纤通信系统仿真实验【实验目的】1.掌握光纤通信系统的组成及各部分功能。2.熟悉Optisystem实验环境&#xff0c;练习使用元件库中的常用元件组建光纤通信系统。3.利用Optisystem的仿真光纤通信系统&#xff0c;并进行分析。【实验仪器】Optisystem软件计算机【实验内容…

酒店wifi代理服务器没有响应,wn10连接酒店wifi的登录界面无法弹出如何处理

通常情况下&#xff0c;我们在连接酒店wifi后都会出现登录验证界面。不过&#xff0c;最近一位windows10系统用户在连接wifi后打开网页却遇到无法显示登陆界面情况&#xff0c;该怎么办呢&#xff1f;接下来&#xff0c;就随小编一起看看wn10连接酒店wifi的登录界面无法弹出问题…

监视和管理备份系统

上一次我们建立了一个强大的备份系统 &#xff0c;现在我们将研究如何监视备份集。 我们需要验证备份集是否已正确清理&#xff08;这称为删除策略&#xff09;以及它们是否一致&#xff08;称为一致性策略&#xff09;。 备份集可以包含多个文件集。 文件集是备份文件的集合&…

linux rsa登录改密码登录_linux服务器secureCRT RSA登录配置

为了保证生产服务器的安全&#xff0c;我们会做一些安全的登录验证措施&#xff01;不允许使用root账号直接登录服务器&#xff01;下面是通过secureCRT 设置RSA登录配置。1、RSA公钥配置方法(1)打开secureCRT选择一个连接然后点属性再如图所示(2)一直点下去 点击下一步要选RS…

python词云安装什么库_python词云安装什么库

python词云需要安装wordcloud库。 安装方法&#xff1a; 在cmd使用pip install wordcloud命令即可安装。 wordcloud库把词云当作一个WordCloud对象&#xff1a;wordcloud.WordCloud()代表一个文本对应的词云。 可以根据文本中词语出现的频率等参数绘制词云。 示例&#xff1a;f…

微软ODBC服务器驱动,解决安装SQL Server时[Microsoft][ODBC 驱动程序管理器] 未发现数据源的问题...

在Windows Server 2003 上安装 MS SQL Server 2000 时&#xff0c;最后阶段安装程序在配置服务器时&#xff0c;出现“[Microsoft][ODBC 驱动程序管理器] 未发现数据源”&#xff0c;具体提示为&#xff1a;#################################################################…

怎么wps解除合并单元格_wps表格怎么锁定单元格

wps表格怎么锁定单元格呢&#xff1f;很多用户对此还不是很清楚&#xff0c;小编这里就给大家带来有关wps表格怎么锁定单元格的回答&#xff0c;希望能够对大家有所帮助。一、整个表格进行锁定1、同时按住CtrlA&#xff0c;选中整个单元格&#xff0c;如图2、选中以后&#xff…

挡土墙计算软件_广联达软件如何计算钢板止水带?

原创作者&#xff1a;张向荣1、什么是钢板止水带&#xff1f;混凝土结构中&#xff0c;地下室墙体施工中&#xff0c;如果底板和墙体分开浇筑&#xff0c;就需要留置施工缝。施工缝&#xff1a;施工缝并不是一种真实存在的“缝”&#xff0c;它只是因先浇筑混凝土超过初凝时间&…

网站图片多服务器选多大,网站上的图片一般多大合适

网站上的图片一般多大合适 内容精选换一换安装了SSL证书后&#xff0c;访问网站时&#xff0c;HTTPS比HTTP要多几次握手的时间&#xff0c;HTTPS协议握手阶段比较费时&#xff0c;同时还要进行RSA校验&#xff0c;因此使用了SSL证书后&#xff0c;相较于HTTP访问&#xff0c;访…