在早期的 Java 数据库和网站开发中, 开发人员通过 java.sql 包里面的各式各样的类来操作数据库; 你甚至可以记起来自己当时怎么写的. 编写的方式基本上就是通过 DriverManager 获取 Driver, 创建 Connection, 使用 Connection, 正确处理异常, 关闭连接等等. 这种情况下常见问题包括忘记关闭数据库连接, 或者运行一段时间后出现了连接异常.
几年之后 "连接池" 成了个大话题因为它可以让开发人员不用再关心创建和管理(关闭)数据库连接, 这样可以集中精力于他们的 SQL 和 ResultSet 分析代码中. 这样, 我们几乎解决了长时间运行的应用程序里面的连接异常的问题. 然而, 还是经常能看到成百上千行的代码来生成一段查询数据的SQL 然后分析 ResultSet 来填充查询结果.
又是几年过去了, 某些人产生了一个想法: 自动将 ResultSet 里面的结果直接映射成 Java 对象, 这解决了大部分的像模版一样的重复多余的分析结果集的代码. 这时候 Java 数据库开发已经前进了好几步, 已经变得相对很容易了. 在这些基础之上, Hibernate 出现在我们的面前.
Hibernate 带来的想法不仅仅是自动化这些过程, 而且在内存中管理对象的状态, 它来关心什么时候以及如何将对象值"读取"或者"写入"数据库. 忽然的, 所有的开发人员都在完全使用对象(或者映射的对象)并且让 Hibernate 来处理其它的事情. 开发人员完全不再需要编写 JDBC 和 SQL 代码(译者注: 这只是用对象方式设计数据库的新项目中才可以, OR 这个词限定了它的适用范围, 并不是什么项目都能用 Hibernate 的). 现在他们通过持久化框架的代码来代替过去所写的那些复杂的代码.
在 Hibernate 出现的时候, 其它的可用的持久化技术包括 EJB 2.x. Hibernate 的适时出现, 易用性, 以及大量开发人员的支持导致它很快在 Java 开发领域声名雀起.
在这个教程中, 我们将会看一看如何使用 MyEclipse 开发 Hibernate 来简化开发过程, 甚至比单独使用 Hibernate 更方便. 事实上, MyEclipse 通过在短短几秒内生成 Java 应用的持久层的代码, 不需要你来编写任何 Hibernate 映射或者配置文件.
我们通过创建一个简单的数据库开始, 稍后这个数据库将会被反向工程来生成到一个启用了 Hibernate 的项目中. 接下来, 我们将会编写一些简单的 Java 代码来使用 MyEclipse 所自动生成的 Hibernate 代码来存储, 读取以及更新数据库中的信息.
开始工作
如果你需要这个教程所创建的项目文件, 以及所使用的数据库表格的建表 SQL 脚本, 可以在文末的 资源 部分找到. 不过还是强烈鼓励读者自己照着教程来创建这个项目.
要在 MyEclipse 中开始使用 Hibernate 和 Spring, 首先我们需要有一个数据库连接来供程序来使用. 在这里, 使用的是 MySQL 5, 事先创建了一张示例表格 user table . 我们使用 MySQL Connector/J JDBC 驱动来连接到安装好的 MySQL. 现在首先来创建一个新的连接, 在 MyEclipse 中连接到我们的数据库:
现在已经创建好了连上了数据库的连接, 第二步就是创建一个启用了Hibernate 功能的项目 (Java, Web, Web Service, 等等, 都可以). 可以先创建一个任意类型的基本项目, 例如 Java 或者 Web 项目, 然后通过 MyEclipse 菜单下的选项来添加 Hibernate capabilities 给当前项目, 如下所示:
|
图 2. 创建一个支持 Hibernate 的项目
|
反向工程
现在已经建好了数据库连接和配置好的项目, 接下来要做的就是使用 MyEclipse 来进行反向工程, 从数据库表格生成 Hibernate (Java) 对象并把这些对象放到当前的项目中去.
在下面的例子中, 我们使用了最简单模式下的反向工程, 全部采用默认设置. 当然, 如果愿意你也可以通过点击 "Next" 按钮切换屏幕时来选择一些选项例如主键生成策略, 对象名字, 类型以及其它设置. 现在让我们开始反向工程表格:
|
图 3. 反向工程从 user 表生成 Hibernate (Java) 对象
|
现在数据库表格已经被自动反向工程到我们的项目中了, MyEclipse 中有很多种 Hibernate 工具可以使用(甚至不需要写代码!). 第一个要看的工具是 HSQL 编辑器.
HQL 编辑器, 以及其它的 HQL 视图都位于 Hibernate 透视图中, 可以协助开发, 执行或者测试 HQL 查询. HQL 是一种类似于 SQL的语言, 叫做 "Hibernate 查询语言". 它可以从某种意义上看作简化过的 SQL, 但是用的是对象名字和属性来代替数据库表和字段的名字. 可以在位于 资源 部分的 Hibernate 参考文档中来详细的学习 HQL.
使用 HQL 编辑器你可以即时编写 HQL 然后执行. 编辑器通过使用 MyEclipse 从数据库反向工程所生成的对象, 把 HQL 查询翻译成 SQL(显示于界面的右下侧), 然后加以执行. 查询结果将会返回为 Java 对象然后显示在界面的左下侧. 让我们来看看工作过程:
编写和运行 Hibernate 代码
尽管熟悉 MyEclipse 提供的工具很重要, 不过我们只需要了解部分工具就行了, 所以让我们写点自己的代码测试吧!
像我们以前提到的那样, 使用 MyEclipse 的一个最大的好处就是可以生成所有的模式化的 Hibernate 映射和 DAO 的代码. 这意味着反向工程数据库之后你就可以开始编写自己的程序来读取, 写入以及更新数据库中的数据了.
在这个教程里面我们讲编写一些简单的方法, 依次执行下面的3个操作:
- 创建一个新 User 然后把他添加到数据库中
- 根据主键从数据库中加载 User , 并打印出他的信息
- 修改 User 的值, 更新数据库中的记录然后打印出来修改过的值进行验证
这三个方法 ( addUser, listUser, changeUser) 将在新建的类里面的 main 方法中调用. 要更好的理解这个 Hibernate 代码如何编写的, 让我们创建这个类, 将方法复制到类里面(使用复制和粘贴)然后一行一行的检查:
|
图 5. 创建一个使用我们所生成的 Hibernate 代码的新类
|
看过代码后我们可以很直接的理解所有的事情. 我们使用 MyEclipse 为我们生成的 DAO 类来获取, 更新以及保存我们的对象到数据库中, MyEclipse/Hibernate 来关心所有的其它细节的实现. 没有比这更简单的了.
现在到了有趣的地方了, 让我们运行代码并且看看是不是真正的进行了正确的操作:
|
图 6. 运行我们的示例 Hibernate 代码
|
真棒! 工作的结果完全符合我们的预期! 我们使用 HQL Editor 来查询数据库并确保我们的用户保存成功. 另外, 我们还可以很容易的切换到 Database 透视图然后查询数据库来检查表格中的用户记录.
分享到:
相关推荐
在 MyEclipse 中使用 Hibernate 开发时,首先需要将 Hibernate 的类库加入到项目中。具体步骤如下: 1. **添加 Hibernate 支持**: - 在 MyEclipse 中打开您的项目,然后在项目上点击鼠标右键。 - 选择...
在myeclipse中配置hibernate 自动生成配置文件在myeclipse中配置hibernate 自动生成配置文件
Hibernate 4.3.5 连接 Oracle 11G的演示代码" 描述的是一个整合项目,它将Myeclipse 10.0集成开发环境、Hibernate 4.3.5对象关系映射框架与Oracle 11G数据库相结合,用于演示如何在这样的环境中建立数据连接并执行...
MyEclipse是一个集成开发环境(IDE),它支持多种Java EE技术,并提供了包括Hibernate在内的多种框架的支持。...以上是关于在MyEclipse中使用Hibernate进行反向工程的知识点,希望能够为开发者提供帮助。
本文主要介绍如何在MyEclipse集成开发环境中配置Hibernate框架来实现与Oracle数据库的连接。通过以下步骤,开发者能够快速搭建起基于Hibernate的数据库访问层,从而提高开发效率。 #### 二、环境准备 在进行配置...
本文将指导您如何在 MyEclipse 中使用 Hibernate,並详细介绍了创建数据库、配置数据库连接、初始化 Hibernate 开发环境、生成 POJO 及 hbm 映射文件等步骤。 创建数据库 在 MyEclipse 中,我们可以使用 SQL ...
在MyEclipse中进行Hibernate的逆向工程是一个高效的方法,它可以帮助开发者快速地将数据库中的表结构转换为Java对象,从而简化开发流程。以下将详细解释这个过程: 1. **数据库准备**:首先,你需要一个已经存在的...
在MyEclipse中进行Hibernate反向工程的步骤主要涉及创建数据库连接、添加Hibernate支持、替换JAR包、打开数据库连接以及选择表进行反向工程。接下来,我们将详细讲解每个步骤。 1. **创建数据库连接** 首先,你...
这是一份非常适合初学者使用的指南,特别是对于那些希望快速掌握在MyEclipse环境中配置Hibernate基本步骤的学习者来说尤为有用。 #### 二、准备工作 1. **Java SDK**: 需要安装Java 2 SDK Standard Edition 1.4或...
在MyEclipse中进行Hibernate反转工程是开发Java Web应用程序时常用的一种快速生成实体类和映射文件的方法。这个过程能够帮助开发者节省手动编写这些文件的时间,使得开发更加高效。以下是一个详细的步骤指南: 1. *...
在这个示例中,我们将展示如何使用 Myeclipse 自动生成 Hibernate 配置文件及实体类映射 ORM 配置文件。 第一步骤:新建一个 Web 项目 在 Myeclipse 中,新建一个 Web 项目,名称随意。然后,点击菜单栏中的 ...
在MyEclipse中创建Hibernate + Struts实例,首先需要确保已安装了相应的插件。压缩包中的`MyEclipse_Hibernate.exe`可能是MyEclipse的一个版本或者相关的插件安装程序,需要执行该文件进行安装或更新。 接下来,...
myeclipse自动生成hibernate映射文件
在MyEclipse中添加Hibernate支持是一项常见的...通过以上步骤,你已经具备了在MyEclipse中使用Hibernate进行数据库操作的基础。继续学习和实践,掌握更多的Hibernate特性和最佳实践,将使你在Java开发中更加得心应手。
《MyEclipse Hibernate 快速入门中文版》是专为初学者设计的指南,旨在帮助开发者迅速掌握在MyEclipse集成开发环境中使用Hibernate框架的基本操作和应用。此资源包括一个HTML文档(MyEclipse_Hibernate_Quickstart_...
在开发Java Web应用程序时,使用Hibernate作为持久层框架可以极大地简化数据库操作。MyEclipse作为一款强大的集成开发环境,提供了自动生成Hibernate配置文件的功能,帮助开发者快速构建项目。以下是使用MyEclipse...
在Myeclipse中配置Hibernate以连接Oracle10g数据库是一项常见的开发任务,这涉及到多个步骤,包括设置数据库连接、添加驱动、配置Hibernate项目以及生成相关的配置文件。以下是对这个过程的详细说明: 首先,你需要...
本文将详细介绍如何在MyEclipse 8.5环境下进行Hibernate的基本配置,并通过一个简单的例子来展示其配置过程及使用方式。 #### 二、Hibernate与JDBC对比 在介绍具体的配置步骤前,我们先简单对比一下Hibernate与JDBC...