- 译者序
- 前言
- 本书怎么使用
- 本书排版字体约定
- 本书网站
- 致谢
- 第一部分 Hibernate 快速入门
- 第 1 章 安装和设置
- 第 2 章 映射简介
- 第 3 章 驾驭 Hibernate
- 第 4 章 集合与关联
- 第 5 章 更复杂的关联
- 第 6 章 自定义值类型
- 第 7 章 映射标注
- 第 8 章 条件查询
- 第 9 章 浅谈 HQL
- 第二部分 与其他工具的集成
- 第 10 章 将 Hibernate 连接到 MySQL
- 第 11 章 Hibernate 与 Eclipse:Hibernate Tools 使用实战
- 第 12 章 Maven 进阶
- 第 13 章 Spring 入门:Hibernate 与 Spring
- 第 14 章 画龙点睛:用 Stripes 集成 Spring 和 Hibernate
- 附录 A Hibernate 类型
- 附录 B Criteria API
- 附录 C Hibernate SQL 方言
- 附录 D Spring 事务支持
- 附录 E 参考资源
- 作者简介
- 封面介绍
Hibernate Console 视图
首先要注意的是图 11-22 所示的 Hibernate Configurations(Hibernate 配置)视图。图中,我们已经展开了本节开始创建的"Hibernate ch 11"配置节点,看看怎么使用其中的映射、类、数据库模式等条目。注意图中为主键(identifier)、多对一、一对多关联分配的标识图标。在这个视图中提供了丰富的有用信息。打开这个视图的下拉菜单,可以看到通过它可以访问几个有趣的功能(同时也解释了菜单左边各按钮的功能目的)。
图 11-22 Hibernate Console 视图下的 Hibernate 配置界面
以简单的方式,这一菜单可以让我们编辑现有的 Hibernate 配置、为其他 Hibernate 项目创建新的配置,如果在 Eclipse 环境以外修改了某些文件,还可以刷新这一视图。更为强大的是,"Run Schema Export"选项可以让我们只要简单地选中某个配置项,再运行这个菜单选项,就可以得到与第 2 章编写的 schema Ant 构建任务同样的结果。
这一菜单为它左边那些看起来很神秘的按钮的作用提供了些提示说明。接下来我们看看这些按钮可以完成什么复杂功能,首先从"HQL Editor"开始,图 11-23 演示了选择菜单项并点击按钮后,将会显示的界面。看起来我们应该能够在这个地方处理 HQL,但是使用 Control Space 组合键试图自动输入表格名称时,会产生错误消息"Configuration not available nor open"(配置不可用或打不开)。不过,我认为这里用"or"更合适些,看起来需要将这个窗口和某个 Hibernate Console 配置关联起来。行,这就够了,虽然在 Mac OS X 下界面有些不清楚,不过顶部的菜单似乎就是个用来解决问题的好办法。
图 11-23 一个空白的、未经配置的 HQL Editor 视图
确实如此,配置菜单就在这里。在选择了菜单中的 Hibernate ch 11 配置项以后,就激活了编辑器的独特功能和自动完成的功能(如图 11-24 所示)。看起来可以将命名查询集中在一起,再粘贴到映射文档中,是吗?我们看看它还能做些什么事情。
图 11-24 在连接到某个 Hibernate Console 配置以后的 HQL Editor 界面
在选择菜单项后,如果你也同样得到关于配置不可用的错误消息,这可能意味着 Hibernate Tools 还没有为它打开一个 SessionFactory。你可以用鼠标右键点击 Hibernate Configurations 视图中的配置,再选择"Create SessionFactory"选项(如图 11-25 所示)。其他一些操作,比如向下深入(drilling)Configurations、Session Factory 以及 Database 树节点的细节,似乎也需要一定的窍门。
图 11-25 显式打开配置的 SessionFactory
自动完成帮助对于编写查询确实有用(它可以完成属性名称、HQL 关键字、函数名称等内容的辅助输入),不过这个工具真正强大的功能还要数它可以让你运行查询并查看结果,可以方便地验证查询和数据是否正确,或者只是为了更多地了解 HQL 和数据模型。点击编辑器左边顶部的较大的那个绿色"Run HQL"按钮,就可以运行 HQL,并立即显示运行结果,如图 11-26 所示。
图 11-26 通过 Run HQL 按钮运行 HQL,并查看结果
来吧,尝试一组。添加一些投影、排序以及聚合函数,这真是个好机会,可以真正实践一下第 9 章提到的那些查询功能!但是,在进入下一种编辑器以前,还有一两个窍门……
如果你对大规模的数据库表执行查询,可能希望对结果返回的最多记录数量设置一定的限制,这时就可以使用编辑器顶部的第 2 个菜单。已经将数据加载到了内存中,如果没有的话,Eclipse 则可能会有崩溃的危险。当然,我们这本书中小儿科似的例子肯定不会有任何问题。
到目前为止,Hibernate Configurations 视图下面的 Properties(属性)视图的表现一般,当我们正在编辑映射文件时,它用于显示 XML 元素属性之类的东西,你以前在 Eclipse 中可能见过这些。点击 Hibernate Query Result(Hibernate 查询结果)视图中的一行,再看看会发生什么。图 11-27 是点击 Artist 查询结果中的 William Orbit 一行时的结果。
注意:多么可怕的原型、浏览、学习以及调试工具!
你可以查看选中结果对象的所有 Hibernate 属性,通过展开相应的三角形图标可以深入查看该对象的关联和集合。再一次,你应该自己尝试一下这些功能。(我们可能不用对此再提什么建议了……)
图 11-27 在 Properties 视图中浏览查询结果
你可能会问 HQL 编辑器右边的 Query Parameters(查询参数)视图是做什么用的(如果没这样的问题,也可能是因为还没有显示这个视图,通过选择 Window→Show View→Other 菜单,再从弹出对话框的 Hibernate 部分选择 Query Parameters,就可以打开这个窗口)。这个窗口是用于处理查询中包含的命名参数的。图 11-28 显示了一个例子,我们从第 3 章粘贴了一个 tracksNoLongerThan 命名查询,接着发现点击 Query Parameters 窗口中的":P+"按钮,就可以生成查询中要用到的一个参数列表(这个例子只有一个参数)。我们必须将参数的 Type 设置为 time(通过下拉列表选择),按照窗口列表下面提示的格式帮助信息,在 Value 列中输入一个时间值,再点击查询编辑器顶部左边的带有绿色箭头的"Run"(运行)按钮,就可以在底部的 Hibernate Query Result 窗口中看到希望的查询结果了。
图 11-28 在 Query Parameters 窗口中设置命名参数
很难再想像出一个比这更简单的界面来试验 HQL 查询了!HQL 查询触发的核心 SQL 语句可以在下面这个窗口中查看:Hibernate Dynamic SQL Preview(Hibernate 动态 SQL 预览),在图 11-28 中它紧挨着查询结果选项页;如果你在自己的 Eclipse 中看不到这个窗口,可以通过选择 Window→Show View→Other 菜单,再从弹出对话框的 Hibernate 部分选择 Hibernate Dynamic SQL Preview,就可以打开这个窗口。在这个窗口中看到的 SQL,就是我们在查询编辑器中输入的 HQL 在执行时使用的实际的 SQL 语句,如图 11-29 所示。
图 11-29 Dynamic SQL Preview 窗口
这个窗口的内容非常有趣,因为它是真正动态的,正如其窗口标题所示。如果在 HQL 编辑器中编辑查询的同时,保持打开这个窗口,就可以看到你正在输入的 HQL 语句所对应的 SQL 语句,这样的效果相当直观。例如,考虑如图 11-30 所示的非常简单而且自然的 HQL 查询,以及该 HQL 生成的 SQL 语句。
图 11-30 同时查看简洁的 HQL 与完整的 SQL
就像我们的一位技术编辑指出的,这是在对 SQL 不十分了解的 Java 开发人员和对 HQL 或 JDBC 不感兴趣的 DBA 之间进行交流的非常有价值的工具。
最后,Criteria Editor(条件查询编辑器)窗口,可以通过最后一个还没有介绍过的按钮访问,如图 11-31 所示,它的作用应该可以通过其名称猜得出来。它可以让你生成 Criteria 查询的原型,提供 Java 代码的自动完成(以及预定义的会话变量,以作为供查询使用的 Hibernate Console 配置的会话)。
图 11-31 Hibernate Tools 的 Criteria Editor
如果你发现自动完成功能不能使用,记得检查 Run 按钮旁边的菜单中是否选择了有效的 Hibernate Console 配置,就像 HQL Editor 的使用一样。同时,也要确保 Eclipse 认为 Criteria Editor 窗口处于选中状态(其边框为蓝色)。有时我正准备要在 Criteria Editor 窗口中输入些东西时,而查询结果窗口的边框却是蓝色的,所以本来可以自动完成或编辑的键盘命令都无法正常使用。
其他
代码生成功能?这些也可以用,只是我们在前面还没有直接关注它们。在为特定的项目添加工具支持以前,它们就已经可以使用,不过在我们至少创建一个 Hibernate Console 配置以前,它们并不会做些什么。再仔细看看 Eclipse 工具条,就会发现 Hibernate Tools 还提供了一个新的菜单选项(如图 11-32 所示)。
图 11-32 Hibernate Tools 提供的代码生成菜单
这个新菜单隐藏得很隐蔽,需要费些时间才能看到它。这个菜单是访问 Hibernate Tools 用来建立和运行代码生成功能的图形界面的门户。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论