阅读(2754) (8)

使用JPA控制台

2018-12-11 13:44:35 更新

使用JPA控制台

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

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

另请参阅JPA控制台工具窗口,这将在后续的章节中进行介绍。

在创建项目或模块时启用JPA支持

要使JPA控制台完全正常运行,您应该将持久性单元与相应的数据源相关联。

打开JPA控制台

  1. 打开“持久性”工具窗口(例如:视图|工具窗口|持久性)。
  2. 展开JPA facet节点。
  3. 选择要为其打开控制台或该持久性单元中的任何节点的持久性单元。
  4. 执行以下操作之一:
    • 单击标题栏上的  数据库openapi图标consoleRun svg 。
    • 从上下文菜单中选择Console。
    • 按Ctrl+Shift+F10。
    JPAConsoleOpen
  5. 如果要求选择控制台,请选择JPA Console。

因此,将打开JPA Console工具窗口并显示输入窗格。这是您编写JPQL查询的地方。

JPAConsoleInput

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

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

JPAConsoleInputOutputResult

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

JPAConsoleInputOutputResultParams

使用自定义JVM选项运行控制台

JPA控制台是一个Java进程。如有必要,您可以使用自定义JVM选项启动它:

  1. 创建应用程序运行配置: 运行|编辑配置| 图标一般添加svg|申请。
    在VM选项字段中,指定要在其开始时传递给JVM的选项。其余的运行配置设置无关紧要,您无需指定它们。
  2. 当启动控制台,IntelliJ IDEA现在将通过以下的选项显示一个额外的配置弹出窗口:
    • <default>:此选项对应于启动控制台的常规方式。
    • <YourRunConfigurationName>:选择此选项可使用您指定的VM选项启动控制台。

    修改控制台设置

    1. 打开一个控制台。

    2. 单击JPA Console工具窗口的Settings图标( 图标一般设置svg)。

      JPA控制台的设置位于以下页面:

      • 数据视图

      • CSV格式

编写JPQL查询

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

JPAConsoleCompletion

导航到类或字段的声明

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

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

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

运行查询

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

  • 单击工具栏上的 icons toolwindows toolWindowRun svg
  • 按下:Ctrl+Enter。

运行参数化查询

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

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

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

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

可以指定为:

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

运行自动记忆的查询

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

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

  • 单击工具栏上的 图标vcs历史
  • 按下:Ctrl+Alt+E。

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

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

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

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

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

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

终止查询执行

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

  • 单击工具栏上的 图标动作暂停svg
  • 按下Ctrl+F2。

生成SQL语句和DDL SQL脚本

您可以为持久性单元的JPQL查询和DDL SQL脚本生成SQL语句:

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

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

JPAConsoleDDL

隐藏或显示工具栏

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

  • 单击 JPA Console 工具窗口中标题栏上的 图标一般gearPlain svg, 然后单击“显示工具栏”。

固定“结果”选项卡

如果使用同一个选项卡显示查询结果,并且您获得了要保留的结果,则可以将选项卡固定到工具窗口。要做到这一点:

  • 右键单击选项卡,然后选择“引脚”选项卡。
    JPAConsoleResultPinTab
  • 在行的子集之间导航

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

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

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

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

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

使所有行同时可见

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

  1. 单击 JPA Console工具窗口中工具栏上的 图标一般设置svg 。
  2. 切换到“数据库|数据视图”页面,在“结果集页面大小”字段中指定0,然后单击“确定”。
  3. 单击  图标动作刷新svg 或按 Ctrl+F5 以刷新表格视图。
  4. 转到指定的行

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

    转到指定的行

排序数据

您可以通过单击标题行中的单元格按任意列对表数据进行排序。

此行中的每个单元格在右侧部分都有一个排序标记,最初,单元格可能如下所示: TableEditorHeaderCellUnsorted。在这种情况下,排序标记表示数据未按此列排序。

如果单击一次单元格,数据将按相应列按升序排序。这由分类标记外观表示: TableEditorHeaderCellSortAsc。标记右侧的数字(图片中的1)是排序级别。(您可以按多列排序。在这种情况下,不同的列将具有不同的排序级别。)

单击第二次单元格时,数据按降序排序。以下是排序标记指示此顺序的方式: TableEditorHeaderCellSortDesc

最后,当您第三次单击该单元格时,将使用初始状态。也就是说,取消相应列的排序: TableEditorHeaderCellUnsorted

重新排序列

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

TableEditorReorderColumns

隐藏和显示列

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

要显示隐藏的列:

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

恢复初始表视图

在重新排序或隐藏列或排序数据后, 单击工具栏上的  ResetColumnOrderAndVisibility 以恢复初始表视图。因此,数据通常变为取消排序,列按照在相应查询中定义的顺序显示,并显示所有列。

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

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

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

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

  • 右键单击表标题行中的单元格,然后选择“列列表”。
  • 按下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 INSERT或UPDATE语句, TSV或CSV,HTML表或JSON数据。

要复制或保存数据,请使用:

  • 复制 (在编辑和上下文菜单中可用,快捷键为Ctrl+C)。此命令将选定单元格的数据复制到剪贴板上。
  • 转储数据|到剪贴板 (在上下文菜单中可用,也可以通过工具栏上的 downloadArtifacts访问 )。此命令将整个表的数据复制到剪贴板上。
  • 转储数据|到文件 (在上下文菜单中可用,也可以通过工具栏上的 downloadArtifacts访问 )。此命令将整个表的数据保存在文件中。在实际保存数据之前,会显示一个对话框,您可以在其中选择输出格式并查看数据在文件中的显示方式。

指定数据输出格式和选项

要指定“复制和转储数据”命令的输出格式和选项,请执行以下操作之一:

  • 单击工具栏上的 DataExtractorButton
  • 右键单击该表并指向:Data Extractor:<current_format>。

在打开的菜单中,输出格式位于上部: SQL插入,SQL更新等(看起来像文件名的选项也是输出格式,或者更准确地说,是实现相应数据转换器的脚本)。

输出选项是:

  • 允许换位。 此选项仅影响分隔符分隔值格式(TSV,CSV)。如果表格被转置并且您正在将所选单元格或行复制到剪贴板(例如Ctrl+C),则如果选项处于打开且未转换,则会复制所选内容转置。
  • 跳过生成的列(SQL)。 这是SQL INSERT和UPDATE的选项。启用时,不包括自动增量字段。
  • 添加表定义(SQL)。 这也是SQL INSERT和UPDATE的选项。启用时,将添加表定义(CREATE TABLE)。

另外:

  • 配置CSV格式。此命令将打开CSV格式对话框,您可以使用该对话框管理分隔符分隔值格式(例如CSV,TSV)。
  • 转到脚本目录。此命令允许您切换到存储将表数据转换为各种输出格式的脚本的目录。

将LOB保存在文件中

如果单元格包含二进制大对象 (也称为BLOB或LOB),则可以将此类LOB保存在文件中。

  1. 右键单击包含感兴趣的LOB的单元格,然后选择“将LOB保存到文件”。
  2. 在打开的对话框中,指定目标文件的名称和位置,然后单击“确定”。

更新表视图

要刷新表视图,请执行以下操作之一:

  • 单击工具栏上的 图标动作刷新svg
  • 右键单击该表,然后从上下文菜单中选择“重新加载页面”。
  • 按下Ctrl+F5。

使用此功能:

  • 将显示的数据与数据库的实际内容同步。
  • 更改后应用结果集页面大小设置。

查看查询

要查看用于生成表的查询:

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

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

关闭控制台

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

  • 单击工具栏上的 图标行动关闭
  • 按下:Ctrl+Shift+F4。