IntelliJ IDEA:使用Hibernate控制台
Hibernate控制台
此功能仅在Ultimate版本中受支持。
使用Hibernate控制台编写和运行HQL查询,分析查询结果,以及执行其他相关任务。
先决条件
要使Hibernate控制台完全正常运行,您应该:
- 将会话工厂与相应的数据源相关联,请参考下一章节的内容。
- 如果您使用的是未在代码或配置文件中完全反映的自定义实体类/db表名映射,请指定相应的NamingStrategy实现,请参考下一章节的内容。
打开Hibernate控制台
- 打开“ 持久化”工具窗口(例如:视图|工具窗口|持久化)。
- 展开Hibernate facet节点。
- 选择要为其打开控制台或该会话工厂中的任何节点的会话工厂。
- 执行以下操作之一:在标题栏单击 。从上下文菜单中选择Console。按下Ctrl+Shift+F10。
结果,将打开Hibernate Console工具窗口并显示输入窗格。这是您编写HQL查询的地方。
运行第一个查询( )时,输出窗格将在输入窗格上方打开。基本上,这是在控制台中执行的操作的日志。
如果查询检索数据(例如from,select),则“结果”窗格也会打开,以表格格式显示检索到的数据。
此外,您可以打开“ 参数”窗格( )以管理查询中的参数。
修改控制台设置
-
打开一个控制台。
- 单击Hibernate Console工具窗口的Settings图标( )。
Hibernate控制台的设置如下:
-
数据视图
-
CSV格式
-
编写HQL查询
在输入窗格中编写查询时,请使用自动完成和突出显示HQL关键字以及对象和属性名称。
导航到类或字段的声明
在编写查询时,有时可以查看输入窗格中引用的对象或属性的类或字段的声明。要导航到相应的声明,请执行以下操作之一:
- 将光标放在感兴趣的对象或属性的名称中。然后用Ctrl+B。(或者,您可以从主菜单中使用:导航|声明。)
- 按住Ctrl键,然后指向感兴趣的名称。当文本变为超链接时,单击超链接。
结果,必要的源文件在编辑器中打开,光标放在相应类的声明中或相应字段的getter方法中。
运行查询
要运行当前查询,请执行以下操作之一:
- 单击工具栏上的 。
- 按下Ctrl+Enter。
运行参数化查询
您的查询可以包含参数,但是,在运行此类查询时,必须指定参数的值。有以下指定参数值的方法:
- 单击工具栏上的 或按 Ctrl+Enter 以运行查询。在打开的对话框中,指定参数值,然后单击“确定”。
(要开始编辑值,请切换到相应的表格单元格并开始键入。要指示您已完成编辑值,请按 Enter 或切换到其他单元格。要退出编辑模式并恢复初始值,请按Escape。) - 或者,您可以打开“ 参数”窗格(工具栏上的 )并在其中指定相应的值。(这些值的编辑方式与相应对话框中的相同。)然后运行查询( 使用工具栏上的 或按下Ctrl+Enter)。
参数值可以指定为文本或数字,也可以指定为包含对象引用和方法调用的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语句显示在输出窗格中。
隐藏或显示工具栏
隐藏或显示“结果”窗格的工具栏:
- 单击 Hibernate Console 工具窗口标题栏上的 , 然后单击“显示工具栏”。
固定结果选项卡
如果使用同一个选项卡显示查询结果,并且您得到了要保留的结果,则可以将选项卡固定到工具窗口。为此,请执行以下操作:
- 右键单击选项卡,然后选择“引脚”选项卡。
在行的子集之间导航
根据 "限制页面大小" 参数的值,结果集可能会分为多个页面。例如,您将“限制页面大小”参数设置为100,但查询返回了200行。您将有两页的行,每页有100行。要在页面之间导航,请使用以下控件:
-
:导航到结果集的第一页。
-
:导航到结果集的上一页。( Ctrl+Alt+Up )
-
:导航到结果集的下一页。( Ctrl+Alt+Down )
-
:导航到结果集的最后一页。
使所有行同时可见
如果您希望同时显示满足查询的所有行:
- 单击 Hibernate Console工具窗口上的 。
- 切换到“数据库|数据视图”页面,在“结果集页面大小”字段中指定0,然后单击“确定”。
- 单击 或按下 Ctrl+F5 以刷新表格视图。
转到指定的行
要导航到具有指定编号的行,请右键单击该表并选择“转到|行(Ctrl+G)”。在“转到行”对话框中,指定行号,然后单击“确定”。
数据排序
要对列中的表数据进行排序,请单击标题行中的单元格。
状态 | 描述 |
---|---|
表示数据未在此列中排序。排序标记的初始状态。 | |
数据按升序排序。标记右侧的数字(图片中的1)是排序级别。您可以按多列排序。在这种情况下,不同的列将具有不同的排序级别。 | |
数据按降序排序。 |
重新排序列
要重新排序列,请对标题行中的相应单元格使用拖放操作。
隐藏和显示列
要隐藏列,请右键单击相应的标题单元格,然后选择“隐藏列”。
要显示隐藏的列:
- 执行以下操作之一:右键单击标题行中的任何单元格,然后选择“列列表”;然后按下 Ctrl+F12。在显示的列表中,显示隐藏列的名称。
- 选择(突出显示)感兴趣的列名称,然后按 Space。
- 按 Enter 或 Escape 关闭列表。
恢复初始表视图
在重新排序或隐藏列或排序数据后, 单击工具栏上的 以恢复初始表视图。因此,数据通常会变为未排序,列按最初定义的顺序显示,并显示所有列。
使用“结构”视图对数据进行排序,以及隐藏和显示列
使用“结果”窗格时,表结构视图可用作相应的弹出窗口。
结构视图显示所有列的列表,并允许您对数据进行排序以及隐藏和显示列。
要打开结构弹出窗口,请执行以下操作之一:
- 右键单击表标题行中的单元格,然后选择“列列表”。
- 按下 Ctrl+F12。
在弹出窗口中,选择感兴趣的列并执行以下操作之一:
- 要按升序对此列按数据排序,请按 Shift+Alt+Up。
- 要按降序对数据进行排序,请按 Shift+Alt+Down。
- 要取消按此列排序,请按 Ctrl+Shift+Alt+Backspace。
- 要隐藏列(或显示隐藏列),请按 Space。显示隐藏列的名称。
可以在 "结果" 窗格中使用对表数据进行排序的快捷方式(Shift+Alt+Up, Shift+Alt+Down 和 Ctrl+Shift+Alt+Backspace)而无需打开结构图。
将表导出到文件
将表数据复制到剪贴板或将其保存在文件中时,数据将转换为可用的输出格式之一。作为输出格式,您可以选择SQL INSERT
或UPDATE
语句,TSV 或 CSV,HTML 表或 JSON 数据。
打开表格或结果集,单击“下载数据”图标( )并选择“到文件”。
将表导出到剪贴板
在工具栏上,单击“下载数据”图标( )并选择“到剪贴板”。
配置数据输出格式和选项
您可以使用预定义的输出格式,自定义格式和脚本来配置如何将提取的数据转换为文本。要为提取的数据配置输出,请右键单击表中的任何单元格,然后指向“数据提取器”。
在此菜单中,您可以选择输出格式(例如,SQLINSERT
语句,HTML表格或CSV格式)或将数据转换为特定格式的脚本。还提供以下附加选项:
- 跳过计算列(SQL)
- 允许排除具有计算值的列(影响SQL输出格式)。
- 跳过生成的列(SQL)
- 允许排除具有自动增量值的列(影响SQL输出格式)。
- 添加表定义(SQL)
- 允许包含
CREATE TABLE
语句(影响SQL输出格式)。
此外,您还可以配置以下参数:
-
配置CSV格式。打开CSV格式对话框,您可以使用该对话框管理分隔符分隔值格式(例如,CSV或TSV)。
-
转到脚本目录。打开一个目录,其中包含将表数据转换为各种输出格式的脚本。
将LOB保存在文件中
您可以将二进制大对象(BLOB或LOB)从单元格保存到文件中。
-
右键单击包含LOB的单元格,然后选择“保存LOB”。
-
在保存对话框中,指定文件的名称和位置,然后单击“确定”。
更新表视图
如果要将编辑器中显示的数据与数据库的内容同步,则需要更新表视图。或者,如果要在更改后应用“限制页面大小”设置。
要刷新表视图,请参考以下操作:
-
单击工具栏上的“同步”图标( )。
-
右键单击该表,然后从上下文菜单中选择“重新加载页面”。
-
按下 Ctrl+F5。
查看生成表的查询
若要查看用于生成表的查询,请单击工具栏上的“查看查询 ”。如有必要,您可以选择查询文本并将其复制到剪贴板(Ctrl+C)。
要关闭显示查询的窗格,请按下 Escape。
关闭控制台
要关闭控制台,请执行以下操作之一:
- 单击工具栏上的 。
- 按下 Ctrl+Shift+F4。