# Exposed​​的表格

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

> **TL;DR**
> 所需插件：   Kotlin  （已捆绑），   Exposed​​的表格
>
>
>
> [安装 Exposed](jetbrains://idea/plugin/install?id=com.intellij.exposed)

[Exposed](https://www.jetbrains.com.cn/exposed/) 是一款轻量级的 SQL 库，支持 Kotlin，用于 JDBC 和 R2DBC 驱动实现阻塞和响应式数据库访问。 它提供了两种用于操作数据库的 API：类型安全的 SQL DSL 和面向对象的 DAO API。

Exposed 插件为 IntelliJ IDEA 提供了一系列功能，以提升使用 Exposed 的开发体验。 这些功能包括：

* Exposed 实体和表的 [代码补全](#code-completion)。

* 支持数据库的 [代码检查](#inspections)。

* 在代码和数据库之间进行 [导航](#navigate-to-mapped-reference)。

* Exposed 表定义和 DAO 实体类的 [生成](#code-generation)。

* [实时模板](#live-templates)。

Procedure: 安装 Exposed 插件

此功能依赖于 [Exposed](https://plugins.jetbrains.com/plugin/24367-exposed)插件，您需要安装并启用。

> **Note:**
> 在未订阅 Ultimate 版的情况下，IntelliJ IDEA 中无法使用 Exposed 插件。

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `插件` 。

2. 找到  Exposed  插件，然后点击   安装  。 如果出现提示，请重启 IDE。

## 配置数据源

部分 Exposed 插件功能会利用您的数据库架构进行 [代码生成](#code-generation)、 [代码检查](#inspections)和 [导航到映射引用](#navigate-to-mapped-reference)。

在使用这些功能前，请在   数据库  工具窗口中 [配置数据源](managing-data-sources.html)。

> **Note:**
> 插件使用 SQL 解析作用域将 Kotlin 代码与数据源关联。 在大多数情况下，IntelliJ IDEA 会自动完成该关联。 如果项目存在多个数据源或自动关联不正确，可以 [手动配置 SQL 解析作用域](settings-languages-sql-resolution-scopes.html)。

## 代码补全

该插件提升了操作 Exposed 实体和表时的代码补全体验。 有助于减少人工输入重复属性声明的需求。

## 支持数据库的代码检查。

当   数据库  工具窗口中提供 [数据库连接](connecting-to-a-database.html)和架构上下文时，Exposed 插件会利用这些内容校验 Exposed 表定义和查询中的引用。

代码分析期间，插件会根据选定架构解析数据库对象，并报告如未解析的表、列、外键等与架构相关的引用不一致问题。

在编辑器中，IntelliJ IDEA 会高亮显示未解析的引用，显示检查警告并给出快速修复建议。 例如，如果 Exposed 定义中引用的表在已连接的数据库架构中不存在，插件会显示检查警告和相应提示：

![有关未解析表定义的提示](https://resources.jetbrains.com.cn/help/img/idea/2026.3/exposed_plugin_unresolved_table.png)

要查看或修改用于校验的架构，请选择   转到 SQL 解析作用域  。 这样可配置 IntelliJ IDEA 用于 SQL 解析和校验的数据库源和架构。

> **Tip:**
> 有关运行与配置检查的详细信息，请参阅 [代码检查](code-inspection.html)。

## 跳转到已映射的表和列

插件会在 Exposed 表和列声明旁添加装订区域图标，便于跳转到   数据库  工具窗口中的映射引用。

Procedure:

1. 打开包含 Exposed 表对象的文件。

2. 点击表定义旁边的装订区域图标。

3. 选择   在数据库视图中选择  选项。

![Exposed 表的装订区域图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/exposed_plugin_select_db_view.png) IntelliJ IDEA 会打开   数据库  工具窗口，并跳转到对应的表：

![Exposed 插件跳转到数据库视图](https://resources.jetbrains.com.cn/help/img/idea/2026.3/exposed_plugin_select_db_view_open.png)

## 生成代码

Procedure: 从现有数据库架构生成表

您可以在   数据库  工具窗口中，通过已存在的数据库对象生成 Exposed 表定义。

1. 打开   数据库   工具窗口。

2. 右键点击架构、表或其他受支持的数据库元素。

3. 选择   从数据库创建 Exposed ​​表格  。

如果您的项目包含  `org.jetbrains.exposed:exposed-dao` 依赖项，请选择   从数据库创建 Exposed ​​实体  。

![从现有数据库架构生成表](https://resources.jetbrains.com.cn/help/img/idea/2026.3/exposed_plugin_generate_tables.png)

4. 在弹出的对话框中，您可以选择并自定义输出，例如：

* 使用 目标软件包 字段指定生成的表或 DAO 实体类的存放位置。

* 请检查并修改建议的属性名称。

* 如有需要，请调整推断出的 Exposed 列类型。 > **Note:** > 类型映射根据数据库元数据推断，尤其是针对特定厂商或自定义数据库类型，可能需要人工检查。 ![从现有数据库架构生成表](https://resources.jetbrains.com.cn/help/img/idea/2026.3/exposed_plugin_generate_tables_popup.png)

5. 点击   OK  生成代码。

Procedure: 从现有表生成实体

您可以使用该插件为已有的 Exposed 表对象生成 DAO 实体类。

> **Note:**
> 此功能需要  `org.jetbrains.exposed:exposed-dao` 依赖项。

1. 打开包含 Exposed 表对象的文件。

2. 点击表定义旁边的装订区域图标。

3. 请选择   从表生成 Exposed 实体  选项。

![从现有表生成实体](https://resources.jetbrains.com.cn/help/img/idea/2026.3/exposed_plugin_generate_entities.png)

生成的实体类会与表对象位于同一 Kotlin 文件。 插件会同时生成  `实体` 类及其伴侣应用  `EntityClass` 。

## Exposed 实时模板

Exposed 插件提供 [实时模板](using-live-templates.html)，帮助您在 Kotlin 文件中快速创建常用的 Exposed 代码构造。 实时模板会根据模板名称生成预定义代码段，减少需要编写的模板代码量。

要展开实时模板，请输入相应的缩写，并按 `Tab` (Windows), `⇥` (macOS), `⇥` (IntelliJ IDEA Classic (macOS)), `⇥` (macOS System Shortcuts), `Tab` (XWin), `Tab` (GNOME), `Tab` (KDE), `Tab` (Emacs), `Tab` (Sublime Text), `⇥` (Sublime Text (macOS)), `Tab` (Visual Studio), `⇥` (Visual Studio (macOS)), `Tab` (NetBeans), `Tab` (Eclipse), `⇥` (Eclipse (macOS))。

### 数据库模板

可使用以下实时模板生成数据库相关代码：

|  缩写  |  描述  |
| --- | --- |
|   `database`   |  生成 Exposed JDBC 的数据库连接配置。   > **Note:** > `database` 模板需要  `org.jetbrains.exposed:exposed-jdbc` 依赖项。    |
|   `r2dbcDatabase`   |  生成 Exposed R2DBC 的数据库连接配置。   > **Note:** > `r2dbcDatabase` 模板需要  `org.jetbrains.exposed:exposed-r2dbc` 依赖项。    |

### 表模板

可用以下模板生成 Exposed 表对象：

|  缩写  |  描述  |
| --- | --- |
|   `表`   |  生成 [表](https://jetbrains.github.io/Exposed/api/exposed-core/org.jetbrains.exposed.v1.core/-table/index.html)对象。  |
|   `idTable`   |  生成 [IdTable](https://jetbrains.github.io/Exposed/api/exposed-core/org.jetbrains.exposed.v1.core.dao.id/-id-table/index.html)对象。  |
|   `intIdTable`   |  生成 [IntIdTable](https://jetbrains.github.io/Exposed/api/exposed-core/org.jetbrains.exposed.v1.core.dao.id/-int-id-table/index.html)对象。  |
|   `longIdTable`   |  生成 [LongIdTable](https://jetbrains.github.io/Exposed/api/exposed-core/org.jetbrains.exposed.v1.core.dao.id/-long-id-table/index.html)对象。  |
|   `uuidTable`   |  生成 [UuidTable](https://jetbrains.github.io/Exposed/api/exposed-core/org.jetbrains.exposed.v1.core.dao.id/-uuid-table/index.html)对象。  |

### DAO 实体模板

可用以下模板生成 Exposed DAO 实体类：

|  缩写  |  描述  |
| --- | --- |
|   `entity`   |  生成  `实体` 类。  |
|   `intEntity`   |  生成 [IntEntity](https://jetbrains.github.io/Exposed/api/exposed-dao/org.jetbrains.exposed.v1.dao/-int-entity/index.html)类。  |
|   `longEntity`   |  生成 [LongEntity](https://jetbrains.github.io/Exposed/api/exposed-dao/org.jetbrains.exposed.v1.dao/-long-entity/index.html)类。  |
|   `uuidEntity`   |  生成 [UuidEntity](https://jetbrains.github.io/Exposed/api/exposed-dao/org.jetbrains.exposed.v1.dao/-uuid-entity/index.html)类。  |

> **Note:**
> DAO 实体模板需要  `org.jetbrains.exposed:exposed-dao` 依赖项。

### 配置实时模板

您可在 IntelliJ IDEA 设置中查看和自定义 Exposed 实时模板：

Procedure:

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `编辑器 | 实时代码模板` 。

2. 在选项列表中，点击   Exposed​​的表格  节点以展开已提供的实时模板列表。

![Exposed 实时模板设置](https://resources.jetbrains.com.cn/help/img/idea/2026.3/exposed_plugin_live_templates.png)

随后您可以通过复选框启用或禁用它们，编辑现有模板或新建模板。

