提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:陈津勇|2019-11-05 14:07:18.773|阅读 180 次
概述:开源JORM使用简单,且提供多种功能。通过本文,您将学到:配置Hibernate项目、逆向工程数据库表、使用两个编辑器。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
1、什么是Hibernate?
Hibernate是一种非常流行的、基于Java的开源对象关系映射(JORM)引擎,易于启动和运行,提供了丰富的功能,包括:
多种映射策略
传递持久性
单对象到多表的映射
集合支持
多态关联
可自定义的SQL查询
Hibernate用于在运行时将数据库结构映射到Java对象。使用像Hibernate这样的持久性框架,开发人员可以专注于编写业务逻辑,而不是编写准确、高效的持久性层(包括DAO、SQL查询、JDBC代码、连接管理等)。
任何需要在Java应用程序对象和数据库表之间移动数据的Java应用程序都可以使用Hibernate。因此,它在开发两层和三层Java EE应用程序中非常有用。将Hibernate集成到您的应用程序中涉及:
将Hibernate核心和支持JAR库安装到项目中
创建一个hibernate.cfg.xml文件来描述如何访问数据库
为每个可持久的Java类创建单独的映射描述符文件
1.1导致Hibernate的历史
在Java数据库和Web编程的早期,开发人员使用java.sql包提供的不同类访问其数据库,这包括从DriverManager获取驱动程序、创建和使用连接、正确处理异常、关闭连接等。在此阶段,一个常见的问题是忘记清理数据库连接,并在它们运行了一段时间后在应用程序中得到连接异常的反馈。
几年后,连接池成为一个大话题,因为它们让开发人员不用再担心创建和管理(清理)数据库连接,而是把精力集中在他们的SQL和ResultSet解析代码上。突然之间,长时间运行的应用程序中数据库连接异常的问题基本解决了。但是,仍然经常看到数百行样板代码用于用值填充查询并解析SQL查询返回的ResultSet。
又过了几年,有人想到了将ResultSet结果直接自动映射到Java对象的方法,这在很大程度上解决了所有冗余样板解析代码的问题。那时,Java数据库开发已经迈出了几大步,并且变得越来越简单。然后,Hibernate模式为人熟知。
随着Hibernate的出现,不仅这些东西会继续自动化,Hibernate也会管理内存中对象的状态,它会担心何时以及如何从数据库读取或写入对象值。现在,开发人员只处理对象(或映射对象),Hibernate则处理其他所有内容。开发人员不再编写JDBC和SQL代码。相反,他们使用的是为他们工作的代码。
当Hibernate出现时,另一种可用的持久性技术是EJB2.x。Hibernate的时间安排、易用性和强大功能都是Java领域在相当长一段时间内所采用的最快技术之一。
2、Hibernate项目配置
您可以通过创建任何受支持类型的基础项目(例如Java或Web项目)添加Hibernate facet,来创建启用了hibernate的项目。MyEclipse为您创建一个hibernate.cfg.xml文件,您必须指定数据库连接详细信息。
您也可以通过打开项目的Project Facets属性,将多个构面同时添加到项目中。
2.1Hibernate映射和配置
Hibernate用Java编写,可以通过两种类型的配置文件进行高度配置。第一种配置文件名为hibernate.cfg.xml。启动时,Hibernate会查询此XML文件的操作属性,例如数据库连接字符串和密码、数据库方言以及映射文件的位置。Hibernate在类路径上搜索此文件。
第二种类型的配置文件是映射描述(文件扩展名* .hbm),它指示Hibernate如何在特定的Java类和一个或多个数据库表之间映射数据。MyEclipse提供了用于处理所有这些配置文件类型的工具,并在您更改数据库和Hibernate映射的Java类时使它们保持同步。编辑器具有以下功能:
基于表单的高级编辑器和随附的向导
超链接导航到引用的类和属性
类名自动完成
属性名称自动完成
内容有助于映射文件元素、属性和值。
3、逆向工程数据库表
您可以将数据库表信息反向工程为Hibernate(Java)对象,然后将它们添加到项目中。为了最大程度地控制生成的Hibernate对象,可以在向导中选择详细信息,例如主键生成策略、对象名称、类型等。
在Database Explorer透视图中,可以查看所连接的数据库的内容。在DB浏览器中,右键单击要反向工程的表,然后从菜单中选择Hibernate Reverse Engineering。完成向导后,系统将提示您切换到Hibernate透视图。
这些类将生成到在向导中选择的Java包中。
对数据库表进行反向工程时,实体将显示在配置文件的Mappings部分中。
4. HQL Editor
HQL Editor以及Hibernate透视图中的其他HQL视图可帮助开发、评估或测试HQL查询。HQL是一种类似于SQL的语言,称为Hibernate查询语言。它有时看起来像是简化的SQL,使用对象名和引用而不是表名和列名。该编辑器具有以下功能:
内容辅助
输入时,Hibernate动态查询转换器视图将HQL查询转换为SQL。
Hibernate Query Results视图可以包含多个结果集。结果属性显示在Properties视图中。
查询参数视图可轻松执行变量查询
项目选择器,可以在不同的Hibernate项目之间切换上下文。
使用HQL Editor,可以即时编写并运行HQL。编辑器利用MyEclipse从数据库进行反向工程的对象,将查询转换为SQL(如右下所示),然后运行它。结果在Java对象中返回,并显示在左下角。
对数据库进行反向工程之后,就可以开始编写应用程序以读取、写入和更新数据库中的对象。放置好Java类和方法后,可以在HQL Editor中运行Hibernate查询来查询数据库,这是查询数据库的另一种方法。您还可以切换到Database Explorer透视图并从那里查询数据库以查看相同的结果。
5、Criteria Editor
除了HQL编辑器之外,MyEclipse Hibernate工具还包括一个Criteria编辑器。Hibernate中的Criteria是一种利用对象实例结合查询约束来针对实体创建查询的方法。例如,假设创建一个类型为User的实体实例,将实体指定为查询的条件,并告诉条件只返回前10个结果,这是创建用于实体的复杂查询的有效且快速的方法。
要访问Criteria Editor,请右键单击包含Hibernate facet的项目,然后选择MyEclipse > Open Criteria Editor。
打开Criteria Editor后,可以在编辑器中输入任何表示条件的有效Java代码,并使用编辑器顶部的“Run”图标执行它们。
下面的示例显示了一个基于EchoMessage实体的简单条件,要求Hibernate返回其EchoMessageId值为2的实体。结果出现在Result视图中。
可以使用MyEclipse中的Criteria Editor来编写和执行任何有效的基于条件的代码。在Java编辑器中输入条件时,选择它并调用快速修复将显示“Copy to Criteria”编辑器操作。选择此操作将打开“Criteria”编辑器,并使用所选文本进行初始化。
您可以在Criteria Editor中测试和编辑条件。完成后,关闭编辑器可用修改后的条件查询替换最开始选择的文本。
6、常见问题
Q:Hibernate与EJB 3/JPA相比如何?
A:Hibernate 3.2实际上是与JPA兼容的,它实现了所有新的注释,这些注释让JPA使用起来非常自动化且更简单。因此,除了使用JPA的commercial implementation外,还可以使用Hibernate,所有标准JPA批注仍将保留在类中,而无需进行任何更改。
Q:Hibernate可以扩展到非常大的应用程序吗?
A:可以。实际上,Hibernate的根源来自于两位创始人在大型企业应用程序中担任顾问的经验,Hibernate是他们对持久性在应用程序中应如何起作用的看法。
几年前,Gavin King向社区提出了一项挑战,要求找到手工调整的JDBC SQL。该SQL执行的幅度要比Hibernate生成的SQL快,由此也能看出该框架非常注重功能、灵活性和性能。
想进一步了解MyEclips?知你所需,解你所惑!
想与更多人聊MyEclips?加入MyEclipse中国(官方2):742336981畅所欲言吧!
想及时获取MyEclips资讯?扫描下方二维码,MyEclips信息跟你走!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢