IntelliJ IDEA 2025.1 Help

数据提取工具

启用 数据库工具与 SQL 插件

此功能依赖于 数据库工具与 SQL 插件,该插件默认情况下在 IntelliJ IDEA 中绑定并启用。 如果相关功能不可用,请确保您没有禁用插件。

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到 数据库工具与 SQL 插件,然后选中插件名称旁边的复选框。

数据提取器 设置复制或查看编辑器中的数据显示规则(在 文本 编辑器视图模式下)。 您可以从 数据提取程序 列表中选择默认 extractor,该列表位于 导出数据 图标附近 (导出数据图标 ),配置现有的 extractor,或者使用 Groovy 或 JavaScript 创建自定义 extractor。

数据编辑器工具栏上的 Data extractor 列表

最后选择的提取器将成为新打开编辑器标签的默认选项。 对于 MongoDB,“默认提取器”始终是 JSON。

在以下视频中,数据使用 CSV 数据提取器复制,并通过 文本 编辑器视图模式使用 SQL 更新以管道分隔 数据提取器查看。

使用数据提取工具,您可以以 SQL 语句和不同格式导出数据库数据。 当导出到文件时,每个表或视图都会创建一个单独的文件。 有关导出详情,请参阅 导出部分

支持的文件格式

可用脚本和支持的文件格式列表如下:

  • 预定义脚本。 使用它们将数据导出为一组 INSERTUPDATE 语句, TSV 和 CSV 文件, Excel XLSX 文件, Markdown ,HTML 表格,以及 JSON 格式。

    1. 内置

      脚本

      文件格式

      SQL 插入

      .sql

      SQL 更新

      Where 子句

    2. CSV

      脚本

      文件格式

      CSV

      .csv

      TSV

      .tsv

      以管道分隔

      .txt

      您可以使用 CSV format configurations来创建基于 CSV 或任何 DSV 格式的自定义格式。

    3. 脚本化

      脚本

      文件格式

      CSV

      .csv

      TSV

      .tsv

      Excel

      .xlsx .xls

      HTML (groovy)

      .html

      HTML(js)

      JSON

      .json

      切换到 Markdown 模式 (${ hints.mdMode })

      .md

      单行

      .sql

      SQL-Insert-Multirow

      SQL-Insert-Statements

      漂亮

      .txt

      XML

      .xml

  • 自定义数据提取器。 使用 Groovy 或 JavaScript 以及提供的 API 创建它们。

配置分隔符分隔值的提取器

您可以扩展默认功能,并基于 CSV 或任何 DSV 格式创建自己的格式。 在其设置中,您可以为行和标题设置分隔符,定义 NULL 值的文本,指定引号,为带分隔符的格式创建新的提取器。

  1. 从数据提取器列表中选择 配置 CSV 格式

  2. CSV 格式 对话框中,点击 添加格式 图标 添加格式图标

  3. 指定新格式的名称(例如, Confluence Wiki Markup)。

  4. 定义格式设置:设置行和头部的分隔符,定义 NULL 值的文本,指定引用。 点击 OK

    创建格式后,您可以在 导出数据 图标(导出数据图标 )附近的下拉列表中选择它。

如需了解有关 CSV 格式 对话框的更多信息,请参阅 参考资料

添加自定义提取器

您可以创建在 Groovy 或 JavaScript 上编写的您自己的 extractor。

GitHub 仓库 中找到一个用于脚本化扩展开发的预配置项目。

  1. 项目 工具窗口(视图(V) | 工具窗口 | 项目 )中,导航到 临时文件和控制台 | 扩展 | 数据库工具与 SQL | 数据 | 抽取器

  2. 右键点击 提取程序 节点并选择 新建(N) | 文件

  3. 输入文件名(例如, PHP.array.groovy ),其中:

    • PHP :用于提取器菜单中的名称。

    • array :提取器的输出。

    • groovy :脚本的扩展名。

  4. 在新文件中键入或粘贴提取器的代码。 您可以使用 提取程序 文件夹中其他提取器的代码来编写您的提取器。 此外,您可以尝试以下提取器:

  5. 请从提取器列表中选择提取器。

    请考虑以下在 IntelliJ IDEA 中添加 PHP 数组提取器的示例。

自定义数据提取器的 API

使用以下 API 创建自定义数据提取器。

绑定

方法(Groovy 和 JavaScript)

描述

DIALECT

getDbms() 然后是以下方法之一:

  • isOracle

  • isMysql

  • isPostgres

  • isBigQuery

  • isRedshift

  • isGreenplum

  • isVertica

  • isMicrosoft

  • isSybase

  • isDb2

  • isHsqldb

  • isH2

  • isDerby

  • isSqlite

  • isExasol

  • isClickHouse

  • isCassandra

  • isHive

  • isSpark

  • isSnowflake

  • isMongo

  • isCouchbase

  • isCockroach

  • isTransactSql

  • isDocumentOriented

数据库方言

TABLE

  • getName()

  • getParent().getName()

数据库表元数据

ALL_COLUMNS

  • int columnNumber()

  • String name()

查询结果或当前打开的表编辑器中所有列的列表。

COLUMNS

  • int columnNumber()

  • String name()

查询结果或当前打开的表编辑器中的选定列列表。

FORMATTER

  • format(Row, Column)

  • formatValue(Object, Column)

  • getTypeName(Object, Column)

  • isStringLiteral(Object, Column)

默认格式化方法。

OUT

append(String)

提取器输出。

ROWS

  • int rowNumber()

  • boolean first()

  • boolean last()

  • java.util.List<java.lang.Object> data()

  • Object value(Column)

Row data stream.

转置

指示表格编辑器是否处于转置模式的布尔值。

示例

您可以使用以下简单的 CSV 数据提取器作为自定义数据提取器的基础。 此数据提取器的完整版可在 IntelliJ IDEA 中使用。 要定位它,请在 项目 工具窗口中导航到 临时文件和控制台 | 扩展 | 数据库工具与 SQL | 数据 | 抽取器

ROWS.each { row -> COLUMNS.eachWithIndex { column, i -> if (i > 0) OUT.append(",") OUT.append(FORMATTER.format(row, column)) } OUT.append("\n") }

引用

CSV 格式对话框

要访问此对话框,请点击工具栏上的 数据提取程序 列表并选择 配置 CSV 格式

该对话框包含将表格数据转换为分隔符分隔值格式(例如,CSV、TSV)及其逆操作的设置。

预览限制为 10 条记录,以防止加载其余的数据。 当您更改设置时,预览会相应地变化。

条目

描述

格式

选择模板以成功将文件数据转换为表格。 您可以更改预定义模板的设置或添加新模板。 要添加模板,请点击 添加格式 按钮(添加格式图标)。

使用 添加格式)、 移除格式)、 )和 )按钮来创建、删除和重新排序格式; 复制格式“复制格式”图标 )以创建所选格式的副本。

值分隔符(S)

请选择或键入您想用作值分隔符的字符。

行分隔符(R)

请选择或键入您想要用作行分隔符的字符。

null 值文本(N)

选择或输入您希望使用的文本,如果单元格包含 NULL 值。

添加行前缀/后缀

点击链接并输入行前缀和后缀。 前缀和后缀是字符序列,它们与行分隔符一起表示行的开始和结束。

引用

区域中的每一行都位于 引用 下,是一个引号模式。 引号模式包括:

  • 左侧 :在值之前插入的引号字符。

  • 右侧 :在值后插入的引号字符。

  • 转义 :当引号字符是值的一部分时用于转义的方法或字符。 <duplicate> 的值意味着如果在值中出现引号字符,则会将其加倍。 您可以指定自己的转义字符。

如果有多个模式,则使用第一个模式。

使用 添加)、 移除)、 )和 )按钮来创建、删除和重新排序模式。

为值加引号(Q)

选择您希望在引号字符内包含值的时候。

  • 从不 :不要引用值。

  • 需要时 :如果值包含该值或行分隔符,请引用。

  • 始终 :对所有值加引号。

清除空格(W)

忽略或删除空白字符。 如果此复选框未选中,空白字符会被视为相应值的一部分。

第一行是头(H)

将第一行视为包含列名的行。

第一列是头(H)

将第一列视为包含行名称的列。

最后修改日期: 2025年 4月 24日