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

本教程介绍了如何使用Eclipse Hibernate插件自动生成Java域对象(POJO)和相应的hbm.xml文件。通过安装插件、配置数据库连接、创建反向工程配置文件和代码生成配置,简化大型项目中数据库映射对象的创建过程,提高开发效率。
摘要由CSDN通过智能技术生成

概述:

在本教程中,我们将使用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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值