使用JPA控制臺

2018-12-11 14:49 更新

使用JPA控制臺

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

使用JPA控制臺編寫和運(yùn)行JPQL查詢,分析查詢結(jié)果,以及執(zhí)行其他相關(guān)任務(wù)。

另請參閱JPA控制臺工具窗口,這將在后續(xù)的章節(jié)中進(jìn)行介紹。

在創(chuàng)建項(xiàng)目或模塊時(shí)啟用JPA支持

要使JPA控制臺完全正常運(yùn)行,您應(yīng)該將持久性單元與相應(yīng)的數(shù)據(jù)源相關(guān)聯(lián)。

打開JPA控制臺

  1. 打開“持久性”工具窗口(例如:視圖|工具窗口|持久性)。
  2. 展開JPA facet節(jié)點(diǎn)。
  3. 選擇要為其打開控制臺或該持久性單元中的任何節(jié)點(diǎn)的持久性單元。
  4. 執(zhí)行以下操作之一:
    • 單擊標(biāo)題欄上的  數(shù)據(jù)庫openapi圖標(biāo)consoleRun svg 。
    • 從上下文菜單中選擇Console。
    • 按Ctrl+Shift+F10。
    JPAConsoleOpen
  5. 如果要求選擇控制臺,請選擇JPA Console。

因此,將打開JPA Console工具窗口并顯示輸入窗格。這是您編寫JPQL查詢的地方。

JPAConsoleInput

運(yùn)行第一個(gè)查詢( icons toolwindows toolWindowRun svg)時(shí),輸出窗格將在輸入窗格上方打開?;旧希@是在控制臺中執(zhí)行的操作的日志。

如果查詢檢索數(shù)據(jù)(例如:select),則“結(jié)果”窗格也會打開,以表格格式顯示檢索到的數(shù)據(jù)。

JPAConsoleInputOutputResult

此外,您可以打開“參數(shù)”窗格( 財(cái)產(chǎn)黃色)以管理查詢中的參數(shù)。

JPAConsoleInputOutputResultParams

使用自定義JVM選項(xiàng)運(yùn)行控制臺

JPA控制臺是一個(gè)Java進(jìn)程。如有必要,您可以使用自定義JVM選項(xiàng)啟動它:

  1. 創(chuàng)建應(yīng)用程序運(yùn)行配置: 運(yùn)行|編輯配置| 圖標(biāo)一般添加svg|申請。
    在VM選項(xiàng)字段中,指定要在其開始時(shí)傳遞給JVM的選項(xiàng)。其余的運(yùn)行配置設(shè)置無關(guān)緊要,您無需指定它們。
  2. 當(dāng)啟動控制臺,IntelliJ IDEA現(xiàn)在將通過以下的選項(xiàng)顯示一個(gè)額外的配置彈出窗口:
    • <default>:此選項(xiàng)對應(yīng)于啟動控制臺的常規(guī)方式。
    • <YourRunConfigurationName>:選擇此選項(xiàng)可使用您指定的VM選項(xiàng)啟動控制臺。

    修改控制臺設(shè)置

    1. 打開一個(gè)控制臺。

    2. 單擊JPA Console工具窗口的Settings圖標(biāo)( 圖標(biāo)一般設(shè)置svg)。

      JPA控制臺的設(shè)置位于以下頁面:

      • 數(shù)據(jù)視圖

      • CSV格式

編寫JPQL查詢

在輸入窗格中編寫查詢時(shí),請使用JPQL關(guān)鍵字以及對象和屬性名稱的自動完成和突出顯示。

JPAConsoleCompletion

導(dǎo)航到類或字段的聲明

在編寫查詢時(shí),有時(shí)可以查看輸入窗格中引用的對象或?qū)傩缘念惢蜃侄蔚穆暶鳌R獙?dǎo)航到相應(yīng)的聲明,請執(zhí)行以下操作之一:

  • 將光標(biāo)放在感興趣的對象或?qū)傩缘拿Q中。然后按下:Ctrl+B。(或者,您可以從主菜單中使用:導(dǎo)航|聲明。)
  • 按住Ctrl鍵,然后指向感興趣的名稱。當(dāng)文本變?yōu)槌溄訒r(shí),單擊超鏈接。
    JPAConsoleNavToDecl

結(jié)果,必要的源文件在編輯器中打開,光標(biāo)放在相應(yīng)類的聲明中或相應(yīng)字段的getter方法中。

運(yùn)行查詢

要運(yùn)行當(dāng)前查詢,請執(zhí)行以下操作之一:

  • 單擊工具欄上的 icons toolwindows toolWindowRun svg
  • 按下:Ctrl+Enter。

運(yùn)行參數(shù)化查詢

您的查詢可以包含參數(shù),但是,在運(yùn)行此類查詢時(shí),必須指定參數(shù)的值。有以下指定參數(shù)值的方法:

  • 單擊工具欄上的 icons toolwindows toolWindowRun svg或按 Ctrl+Enter 以運(yùn)行查詢。在打開的對話框中,指定參數(shù)值,然后單擊“確定”。
    JPAConsoleParamsDialog
    (要開始編輯值,請切換到相應(yīng)的表格單元格并開始鍵入。要指示您已完成編輯值,請按 Enter 或切換到其他單元格。要退出編輯模式并恢復(fù)初始值,請按Escape。)
  • 或者,您可以打開“參數(shù)”窗格(工具欄上的 財(cái)產(chǎn)黃色)并在其中指定相應(yīng)的值。(這些值的編輯方式與相應(yīng)對話框中的相同。)然后運(yùn)行查詢(工具欄上的 icons toolwindows toolWindowRun svg,或 Ctrl+Enter)。
    JPAConsoleParamsPane

參數(shù)值可以像文本或數(shù)字一樣指定,也可以指定為包含對象引用和方法調(diào)用的Groovy表達(dá)式。例如,查詢中date參數(shù)的值:

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

可以指定為:

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

運(yùn)行自動記憶的查詢

當(dāng)您在控制臺中運(yùn)行JPQL查詢時(shí),IntelliJ IDEA會記住它們。因此,稍后您可以查看已運(yùn)行的查詢,并在必要時(shí)再次運(yùn)行它們。

要打開顯示自動記憶查詢的對話框(“歷史記錄”對話框),請執(zhí)行以下操作之一:

  • 單擊工具欄上的 圖標(biāo)vcs歷史
  • 按下:Ctrl+Alt+E。

“歷史記錄”對話框中有兩個(gè)窗格。左側(cè)窗格顯示您已運(yùn)行的查詢列表。對于“長”查詢,僅顯示其開頭。在此窗格中選擇查詢時(shí),整個(gè)查詢將顯示在右側(cè)窗格中。

您可以過濾信息:只需開始輸入即可。因此,僅顯示包含鍵入文本的查詢。

您可以將“歷史記錄”對話框中的查詢復(fù)制到控制臺的輸入窗格中。要復(fù)制查詢,請執(zhí)行以下操作之一:

  • 雙擊要復(fù)制的查詢。
  • 選擇感興趣的查詢,然后按Enter。
  • 選擇查詢,然后單擊“確定”。

(查詢在輸入窗格中后,您可以立即運(yùn)行它。)

您可以刪除不必要的記憶查詢。要刪除查詢,請?jiān)凇皻v史記錄”對話框中選擇查詢,然后按Delete。

終止查詢執(zhí)行

要終止當(dāng)前查詢的執(zhí)行,請執(zhí)行以下操作之一:

  • 單擊工具欄上的 圖標(biāo)動作暫停svg
  • 按下Ctrl+F2。

生成SQL語句和DDL SQL腳本

您可以為持久性單元的JPQL查詢和DDL SQL腳本生成SQL語句:

  • 要生成當(dāng)前查詢的SQL等效項(xiàng),請執(zhí)行以下操作之一:單擊工具欄上的 icon sqlCopyQuery,然后按下:Ctrl+Shift+Enter。
  • 要為與相應(yīng)的持久性單元關(guān)聯(lián)的所有對象(類)生成DDL SQL語句(CREATE TABLE,ALTER TABLE和DROP TABLE),請執(zhí)行以下操作之一:單擊工具欄。按下Ctrl+Shift+Alt+Enter。

生成的SQL語句顯示在輸出窗格中。

JPAConsoleDDL

隱藏或顯示工具欄

隱藏或顯示“結(jié)果”窗格的工具欄:

  • 單擊 JPA Console 工具窗口中標(biāo)題欄上的 圖標(biāo)一般gearPlain svg, 然后單擊“顯示工具欄”。

固定“結(jié)果”選項(xiàng)卡

如果使用同一個(gè)選項(xiàng)卡顯示查詢結(jié)果,并且您獲得了要保留的結(jié)果,則可以將選項(xiàng)卡固定到工具窗口。要做到這一點(diǎn):

  • 右鍵單擊選項(xiàng)卡,然后選擇“引腳”選項(xiàng)卡。
    JPAConsoleResultPinTab
  • 在行的子集之間導(dǎo)航

    根據(jù)“限制頁面大小”參數(shù)的值,結(jié)果集可能會分為多個(gè)頁面。例如,您將“限制頁面大小”設(shè)置為100,但查詢返回200行。您將有兩頁行,每頁有100行。要在頁面之間導(dǎo)航,請使用以下控件:

    • 第一頁圖標(biāo):導(dǎo)航到結(jié)果集的第一頁。

    • 上一頁圖標(biāo):導(dǎo)航到結(jié)果集的上一頁。( Ctrl+Alt+Up )

    • 下一頁圖標(biāo):導(dǎo)航到結(jié)果集的下一頁。( Ctrl+Alt+Down )

    • 轉(zhuǎn)到最后一頁圖標(biāo):導(dǎo)航到結(jié)果集的最后一頁。

使所有行同時(shí)可見

如果您希望同時(shí)顯示滿足查詢的所有行:

  1. 單擊 JPA Console工具窗口中工具欄上的 圖標(biāo)一般設(shè)置svg 。
  2. 切換到“數(shù)據(jù)庫|數(shù)據(jù)視圖”頁面,在“結(jié)果集頁面大小”字段中指定0,然后單擊“確定”。
  3. 單擊  圖標(biāo)動作刷新svg 或按 Ctrl+F5 以刷新表格視圖。
  4. 轉(zhuǎn)到指定的行

    要導(dǎo)航到具有指定編號的行,請右鍵單擊該表并選擇“轉(zhuǎn)到”行(Ctrl+G)。在“轉(zhuǎn)到行”對話框中,指定行號,然后單擊“確定”。

    轉(zhuǎn)到指定的行

排序數(shù)據(jù)

您可以通過單擊標(biāo)題行中的單元格按任意列對表數(shù)據(jù)進(jìn)行排序。

此行中的每個(gè)單元格在右側(cè)部分都有一個(gè)排序標(biāo)記,最初,單元格可能如下所示: TableEditorHeaderCellUnsorted。在這種情況下,排序標(biāo)記表示數(shù)據(jù)未按此列排序。

如果單擊一次單元格,數(shù)據(jù)將按相應(yīng)列按升序排序。這由分類標(biāo)記外觀表示: TableEditorHeaderCellSortAsc。標(biāo)記右側(cè)的數(shù)字(圖片中的1)是排序級別。(您可以按多列排序。在這種情況下,不同的列將具有不同的排序級別。)

單擊第二次單元格時(shí),數(shù)據(jù)按降序排序。以下是排序標(biāo)記指示此順序的方式: TableEditorHeaderCellSortDesc。

最后,當(dāng)您第三次單擊該單元格時(shí),將使用初始狀態(tài)。也就是說,取消相應(yīng)列的排序: TableEditorHeaderCellUnsorted

重新排序列

要重新排序列,請對標(biāo)題行中的相應(yīng)單元格使用拖放操作。

TableEditorReorderColumns

隱藏和顯示列

要隱藏列,請右鍵單擊相應(yīng)的標(biāo)題單元格,然后選擇“隱藏列”。

要顯示隱藏的列:

  1. 執(zhí)行以下操作之一:
    • 右鍵單擊標(biāo)題行中的任何單元格,然后選擇“列列表”。
    • 按Ctrl+F12。
    在顯示的列表中,顯示隱藏列的名稱。
    TableResultPaneHideColumn
  2. 選擇(突出顯示)感興趣的列名稱,然后按Space。
  3. 按 Enter 或 Escape 關(guān)閉列表。

恢復(fù)初始表視圖

在重新排序或隱藏列或排序數(shù)據(jù)后, 單擊工具欄上的  ResetColumnOrderAndVisibility 以恢復(fù)初始表視圖。因此,數(shù)據(jù)通常變?yōu)槿∠判?,列按照在相?yīng)查詢中定義的順序顯示,并顯示所有列。

使用“結(jié)構(gòu)”視圖對數(shù)據(jù)進(jìn)行排序,以及隱藏和顯示列

使用“結(jié)果”窗格時(shí),表結(jié)構(gòu)視圖可用作相應(yīng)的彈出窗口。

結(jié)構(gòu)視圖顯示所有列的列表,并允許您對數(shù)據(jù)進(jìn)行排序以及隱藏和顯示列。

要打開結(jié)構(gòu)彈出窗口,請執(zhí)行以下操作之一:

  • 右鍵單擊表標(biāo)題行中的單元格,然后選擇“列列表”。
  • 按下Ctrl+F12。

在彈出窗口中,選擇感興趣的列并執(zhí)行以下操作之一:

  • 要按升序?qū)Υ肆邪磾?shù)據(jù)排序,請按Shift+Alt+Up。
  • 要按降序?qū)?shù)據(jù)進(jìn)行排序,請按Shift+Alt+Down。
  • 要取消此列的排序,請按Ctrl+Shift+Alt+Backspace。
  • 要隱藏列(或顯示隱藏列),請按Space。顯示隱藏列的名稱。
    TableResultPaneHideColumn

可以在“結(jié)果”窗格中使用對表數(shù)據(jù)進(jìn)行排序的快捷方式(Shift+Alt+Up, Shift+Alt+Down以及Ctrl+Shift+Alt+Backspace)而無需打開結(jié)構(gòu)視圖。

將表數(shù)據(jù)復(fù)制到剪貼板或?qū)⑵浔4嬖谖募?/h2>

將表數(shù)據(jù)復(fù)制到剪貼板或?qū)⑵浔4嬖谖募袝r(shí),數(shù)據(jù)將轉(zhuǎn)換為可用的輸出格式之一。這可以是SQL INSERT或UPDATE語句, TSV或CSV,HTML表或JSON數(shù)據(jù)。

要復(fù)制或保存數(shù)據(jù),請使用:

  • 復(fù)制 (在編輯和上下文菜單中可用,快捷鍵為Ctrl+C)。此命令將選定單元格的數(shù)據(jù)復(fù)制到剪貼板上。
  • 轉(zhuǎn)儲數(shù)據(jù)|到剪貼板 (在上下文菜單中可用,也可以通過工具欄上的 downloadArtifacts訪問 )。此命令將整個(gè)表的數(shù)據(jù)復(fù)制到剪貼板上。
  • 轉(zhuǎn)儲數(shù)據(jù)|到文件 (在上下文菜單中可用,也可以通過工具欄上的 downloadArtifacts訪問 )。此命令將整個(gè)表的數(shù)據(jù)保存在文件中。在實(shí)際保存數(shù)據(jù)之前,會顯示一個(gè)對話框,您可以在其中選擇輸出格式并查看數(shù)據(jù)在文件中的顯示方式。

指定數(shù)據(jù)輸出格式和選項(xiàng)

要指定“復(fù)制和轉(zhuǎn)儲數(shù)據(jù)”命令的輸出格式和選項(xiàng),請執(zhí)行以下操作之一:

  • 單擊工具欄上的 DataExtractorButton。
  • 右鍵單擊該表并指向:Data Extractor:<current_format>。

在打開的菜單中,輸出格式位于上部: SQL插入,SQL更新等(看起來像文件名的選項(xiàng)也是輸出格式,或者更準(zhǔn)確地說,是實(shí)現(xiàn)相應(yīng)數(shù)據(jù)轉(zhuǎn)換器的腳本)。

輸出選項(xiàng)是:

  • 允許換位。 此選項(xiàng)僅影響分隔符分隔值格式(TSV,CSV)。如果表格被轉(zhuǎn)置并且您正在將所選單元格或行復(fù)制到剪貼板(例如Ctrl+C),則如果選項(xiàng)處于打開且未轉(zhuǎn)換,則會復(fù)制所選內(nèi)容轉(zhuǎn)置。
  • 跳過生成的列(SQL)。 這是SQL INSERT和UPDATE的選項(xiàng)。啟用時(shí),不包括自動增量字段。
  • 添加表定義(SQL)。 這也是SQL INSERT和UPDATE的選項(xiàng)。啟用時(shí),將添加表定義(CREATE TABLE)。

另外:

  • 配置CSV格式。此命令將打開CSV格式對話框,您可以使用該對話框管理分隔符分隔值格式(例如CSV,TSV)。
  • 轉(zhuǎn)到腳本目錄。此命令允許您切換到存儲將表數(shù)據(jù)轉(zhuǎn)換為各種輸出格式的腳本的目錄。

將LOB保存在文件中

如果單元格包含二進(jìn)制大對象 (也稱為BLOB或LOB),則可以將此類LOB保存在文件中。

  1. 右鍵單擊包含感興趣的LOB的單元格,然后選擇“將LOB保存到文件”。
  2. 在打開的對話框中,指定目標(biāo)文件的名稱和位置,然后單擊“確定”。

更新表視圖

要刷新表視圖,請執(zhí)行以下操作之一:

  • 單擊工具欄上的 圖標(biāo)動作刷新svg。
  • 右鍵單擊該表,然后從上下文菜單中選擇“重新加載頁面”。
  • 按下Ctrl+F5。

使用此功能:

  • 將顯示的數(shù)據(jù)與數(shù)據(jù)庫的實(shí)際內(nèi)容同步。
  • 更改后應(yīng)用結(jié)果集頁面大小設(shè)置。

查看查詢

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

  • 單擊工具欄上的“查看查詢”。如有必要,您可以選擇查詢文本并將其復(fù)制到剪貼板(Ctrl+C)。

要關(guān)閉顯示查詢的窗格,請按下Escape。

關(guān)閉控制臺

要關(guān)閉控制臺,請執(zhí)行以下操作之一:

  • 單擊工具欄上的 圖標(biāo)行動關(guān)閉。
  • 按下:Ctrl+Shift+F4。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號