使用JPA控制臺(tái)

2018-12-11 14:49 更新

使用JPA控制臺(tái)

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

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

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

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

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

打開(kāi)JPA控制臺(tái)

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

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

JPAConsoleInput

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

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

JPAConsoleInputOutputResult

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

JPAConsoleInputOutputResultParams

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

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

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

    修改控制臺(tái)設(shè)置

    1. 打開(kāi)一個(gè)控制臺(tái)。

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

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

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

      • CSV格式

編寫(xiě)JPQL查詢

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

JPAConsoleCompletion

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

在編寫(xiě)查詢時(shí),有時(shí)可以查看輸入窗格中引用的對(duì)象或?qū)傩缘念?lèi)或字段的聲明。要導(dǎo)航到相應(yīng)的聲明,請(qǐng)執(zhí)行以下操作之一:

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

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

運(yùn)行查詢

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

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

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

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

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

參數(shù)值可以像文本或數(shù)字一樣指定,也可以指定為包含對(duì)象引用和方法調(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)記憶的查詢

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

要打開(kāi)顯示自動(dòng)記憶查詢的對(duì)話框(“歷史記錄”對(duì)話框),請(qǐng)執(zhí)行以下操作之一:

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

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

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

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

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

(查詢?cè)谳斎氪案裰泻?,您可以立即運(yùn)行它。)

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

終止查詢執(zhí)行

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

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

生成SQL語(yǔ)句和DDL SQL腳本

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

  • 要生成當(dāng)前查詢的SQL等效項(xiàng),請(qǐng)執(zhí)行以下操作之一:?jiǎn)螕艄ぞ邫谏系? icon sqlCopyQuery,然后按下:Ctrl+Shift+Enter。
  • 要為與相應(yīng)的持久性單元關(guān)聯(lián)的所有對(duì)象(類(lèi))生成DDL SQL語(yǔ)句(CREATE TABLE,ALTER TABLE和DROP TABLE),請(qǐng)執(zhí)行以下操作之一:?jiǎn)螕艄ぞ邫凇0聪翪trl+Shift+Alt+Enter。

生成的SQL語(yǔ)句顯示在輸出窗格中。

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ù)“限制頁(yè)面大小”參數(shù)的值,結(jié)果集可能會(huì)分為多個(gè)頁(yè)面。例如,您將“限制頁(yè)面大小”設(shè)置為100,但查詢返回200行。您將有兩頁(yè)行,每頁(yè)有100行。要在頁(yè)面之間導(dǎo)航,請(qǐng)使用以下控件:

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

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

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

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

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

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

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

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

    轉(zhuǎn)到指定的行

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

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

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

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

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

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

重新排序列

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

TableEditorReorderColumns

隱藏和顯示列

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

要顯示隱藏的列:

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

恢復(fù)初始表視圖

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

輸出選項(xiàng)是:

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

另外:

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

將LOB保存在文件中

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

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

更新表視圖

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

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

使用此功能:

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

查看查詢

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

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

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

關(guān)閉控制臺(tái)

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)