IntelliJ IDEA:使用Hibernate控制台

2019-02-15 17:33 更新

Hibernate控制台

此功能仅在Ultimate版本中受支持。

使用Hibernate控制台编写和运行HQL查询,分析查询结果,以及执行其他相关任务。

先决条件

要使Hibernate控制台完全正常运行,您应该:

  • 将会话工厂与相应的数据源相关联,请参考下一章节的内容。
  • 如果您使用的是未在代码或配置文件中完全反映的自定义实体类/db表名映射,请指定相应的NamingStrategy实现,请参考下一章节的内容。

打开Hibernate控制台

  1. 打开“ 持久化”工具窗口(例如:视图|工具窗口|持久化)。
  2. 展开Hibernate facet节点。
  3. 选择要为其打开控制台或该会话工厂中的任何节点的会话工厂。
  4. 执行以下操作之一:在标题栏单击  。从上下文菜单中选择Console。按下Ctrl+Shift+F10。
    openHibernateConsole

结果,将打开Hibernate Console工具窗口并显示输入窗格。这是您编写HQL查询的地方。

HConsoleInput

运行第一个查询( )时,输出窗格将在输入窗格上方打开。基本上,这是在控制台中执行的操作的日志。

如果查询检索数据(例如from,select),则“结果”窗格也会打开,以表格格式显示检索到的数据。

HConsoleInputOutputResult

此外,您可以打开“ 参数”窗格( )以管理查询中的参数。

HConsoleInputOutputResultParams

修改控制台设置

  1. 打开一个控制台。

  2. 单击Hibernate Console工具窗口的Settings图标( )。

    Hibernate控制台的设置如下:

    • 数据视图

    • CSV格式

编写HQL查询

在输入窗格中编写查询时,请使用自动完成和突出显示HQL关键字以及对象和属性名称。

HConsoleCompletion

导航到类或字段的声明

在编写查询时,有时可以查看输入窗格中引用的对象或属性的类或字段的声明。要导航到相应的声明,请执行以下操作之一:

  • 将光标放在感兴趣的对象或属性的名称中。然后用Ctrl+B。(或者,您可以从主菜单中使用:导航|声明。)
  • 按住Ctrl键,然后指向感兴趣的名称。当文本变为超链接时,单击超链接。
    HConsoleNavToDecl

结果,必要的源文件在编辑器中打开,光标放在相应类的声明中或相应字段的getter方法中。

运行查询

要运行当前查询,请执行以下操作之一:

  • 单击工具栏上的
  • 按下Ctrl+Enter。

运行参数化查询

您的查询可以包含参数,但是,在运行此类查询时,必须指定参数的值。有以下指定参数值的方法:

  • 单击工具栏上的 或按 Ctrl+Enter 以运行查询。在打开的对话框中,指定参数值,然后单击“确定”。
    HConsoleParamsDialog
    (要开始编辑值,请切换到相应的表格单元格并开始键入。要指示您已完成编辑值,请按 Enter 或切换到其他单元格。要退出编辑模式并恢复初始值,请按Escape。)
  • 或者,您可以打开“ 参数”窗格(工具栏上的   )并在其中指定相应的值。(这些值的编辑方式与相应对话框中的相同。)然后运行查询( 使用工具栏上的 或按下Ctrl+Enter)。
    HConsoleParamsPane

参数值可以指定为文本或数字,也可以指定为包含对象引用和方法调用的Groovy表达式。例如,查询中date参数的值

SELECT o
FROM Order o
WHERE o.date > :date

可以指定为:

new java.sql.Date(System.currentTimeMillis() - 24*3600*1000)

运行自动记忆的查询

当您在控制台中运行HQL查询时,IntelliJ IDEA会记住它们。因此,稍后您可以查看已运行的查询,并在必要时再次运行它们。

要打开显示自动记忆查询的对话框(“ 历史记录”对话框),请执行以下操作之一:

  • 单击工具栏上的
  • 按下 Ctrl+Alt+E。

“ 历史记录”对话框中有两个窗格。左侧窗格显示您已运行的查询列表。对于“long”查询,仅显示其开头。在此窗格中选择查询时,整个查询将显示在右侧窗格中。

您可以过滤信息:只需开始输入即可。因此,仅显示包含键入文本的查询。

您可以将“ 历史记录”对话框中的查询复制到控制台的输入窗格中。要复制查询,请执行以下操作之一:

  • 双击要复制的查询。
  • 选择感兴趣的查询,然后按Enter。
  • 选择查询,然后单击“ 确定”。

(查询在输入窗格中后,您可以立即运行它。)

您可以删除不必要的记忆查询。要删除查询,请在“ 历史记录”对话框中选择查询,然后按Delete。

终止查询执行

要终止当前查询的执行,请执行以下操作之一:

  • 单击工具栏上的   。
  • 按下 Ctrl+F2。

生成SQL语句和DDL SQL脚本

您可以为会话工厂生成HQL查询和DDL SQL脚本的SQL语句:

  • 要生成当前查询的SQL等效项,请执行以下操作之一:单击工具栏上的 ,然后按下 Ctrl+Shift+Enter。
  • 要为与相应会话工厂关联的所有对象(类)生成DDL SQL语句(CREATE TABLE,ALTER TABLE和DROP TABLE),请执行以下操作之一:单击工具栏,然后按下 Ctrl+Shift+Alt+Enter。

生成的SQL语句显示在输出窗格中。

HConsoleDDL

隐藏或显示工具栏

隐藏或显示“结果”窗格的工具栏:

  • 单击 Hibernate Console 工具窗口标题栏上的 , 然后单击“显示工具栏”。

固定结果选项卡

如果使用同一个选项卡显示查询结果,并且您得到了要保留的结果,则可以将选项卡固定到工具窗口。为此,请执行以下操作:

  • 右键单击选项卡,然后选择“引脚”选项卡。
    HConsoleResultPinTab

在行的子集之间导航

根据 "限制页面大小" 参数的值,结果集可能会分为多个页面。例如,您将“限制页面大小”参数设置为100,但查询返回了200行。您将有两页的行,每页有100行。要在页面之间导航,请使用以下控件:

  • :导航到结果集的第一页。

  • :导航到结果集的上一页。( Ctrl+Alt+Up )

  • :导航到结果集的下一页。( Ctrl+Alt+Down )

  • :导航到结果集的最后一页。

使所有行同时可见

如果您希望同时显示满足查询的所有行:

  1. 单击 Hibernate Console工具窗口上的
  2. 切换到“数据库|数据视图”页面,在“结果集页面大小”字段中指定0,然后单击“确定”。
  3. 单击 或按下 Ctrl+F5 以刷新表格视图。

转到指定的行

要导航到具有指定编号的行,请右键单击该表并选择“转到|行(Ctrl+G)”。在“转到行”对话框中,指定行号,然后单击“确定”。

转到指定的行

数据排序

要对列中的表数据进行排序,请单击标题行中的单元格。

状态

描述

表示数据未在此列中排序。排序标记的初始状态。

数据按升序排序。标记右侧的数字(图片中的1)是排序级别。您可以按多列排序。在这种情况下,不同的列将具有不同的排序级别。

数据按降序排序。

重新排序列

要重新排序列,请对标题行中的相应单元格使用拖放操作。

08d30e9a-ff3b-4fd4-b940-e8842104ec25

隐藏和显示列

要隐藏列,请右键单击相应的标题单元格,然后选择“隐藏列”。

要显示隐藏的列:

  1. 执行以下操作之一:右键单击标题行中的任何单元格,然后选择“列列表”;然后按下 Ctrl+F12。在显示的列表中,显示隐藏列的名称。
    TableResultPaneHideColumn
  2. 选择(突出显示)感兴趣的列名称,然后按 Space。
  3. 按 Enter 或 Escape 关闭列表。

恢复初始表视图

在重新排序或隐藏列或排序数据后, 单击工具栏上的 以恢复初始表视图。因此,数据通常会变为未排序,列按最初定义的顺序显示,并显示所有列。

使用“结构”视图对数据进行排序,以及隐藏和显示列

使用“结果”窗格时,表结构视图可用作相应的弹出窗口。

结构视图显示所有列的列表,并允许您对数据进行排序以及隐藏和显示列。

要打开结构弹出窗口,请执行以下操作之一:

  • 右键单击表标题行中的单元格,然后选择“列列表”。
  • 按下 Ctrl+F12。

在弹出窗口中,选择感兴趣的列并执行以下操作之一:

  • 要按升序对此列按数据排序,请按 Shift+Alt+Up。
  • 要按降序对数据进行排序,请按 Shift+Alt+Down。
  • 要取消按此列排序,请按 Ctrl+Shift+Alt+Backspace。
  • 要隐藏列(或显示隐藏列),请按 Space。显示隐藏列的名称。
    TableResultPaneHideColumn

可以在 "结果" 窗格中使用对表数据进行排序的快捷方式(Shift+Alt+Up, Shift+Alt+Down 和 Ctrl+Shift+Alt+Backspace)而无需打开结构图。

将表导出到文件

将表数据复制到剪贴板或将其保存在文件中时,数据将转换为可用的输出格式之一。作为输出格式,您可以选择SQL INSERTUPDATE语句,TSV 或 CSV,HTML 表或 JSON 数据。

打开表格或结果集,单击“下载数据”图标( )并选择“到文件”。

将视图导出到文件

将表导出到剪贴板

在工具栏上,单击“下载数据”图标( )并选择“到剪贴板”。

配置数据输出格式和选项

您可以使用预定义的输出格式,自定义格式和脚本来配置如何将提取的数据转换为文本。要为提取的数据配置输出,请右键单击表中的任何单元格,然后指向“数据提取器”。

表编辑器上下文菜单

在此菜单中,您可以选择输出格式(例如,SQLINSERT语句,HTML表格或CSV格式)或将数据转换为特定格式的脚本。还提供以下附加选项:

跳过计算列(SQL)
允许排除具有计算值的列(影响SQL输出格式)。
跳过生成的列(SQL)
允许排除具有自动增量值的列(影响SQL输出格式)。
添加表定义(SQL)
允许包含CREATE TABLE语句(影响SQL输出格式)。

此外,您还可以配置以下参数:

  • 配置CSV格式。打开CSV格式对话框,您可以使用该对话框管理分隔符分隔值格式(例如,CSV或TSV)。

  • 转到脚本目录。打开一个目录,其中包含将表数据转换为各种输出格式的脚本。

将LOB保存在文件中

您可以将二进制大对象(BLOB或LOB)从单元格保存到文件中。

  1. 右键单击包含LOB的单元格,然后选择“保存LOB”。

  2. 在保存对话框中,指定文件的名称和位置,然后单击“确定”。

更新表视图

如果要将编辑器中显示的数据与数据库的内容同步,则需要更新表视图。或者,如果要在更改后应用“限制页面大小”设置。

要刷新表视图,请参考以下操作:

  • 单击工具栏上的“同步”图标( )。

  • 右键单击该表,然后从上下文菜单中选择“重新加载页面”。

  • 按下 Ctrl+F5。

查看生成表的查询

若要查看用于生成表的查询,请单击工具栏上的“查看查询 ”。如有必要,您可以选择查询文本并将其复制到剪贴板(Ctrl+C)。

要关闭显示查询的窗格,请按下 Escape。

关闭控制台

要关闭控制台,请执行以下操作之一:

  • 单击工具栏上的
  • 按下 Ctrl+Shift+F4。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号