# 注入的 SQL 语句

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

Procedure: 启用 数据库工具和 SQL 插件

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

> **Note:**
> 没有 Ultimate 订阅时，数据库工具和 SQL 的功能支持在 IntelliJ IDEA 中受限。

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. 找到  数据库工具和 SQL  插件并点击   启用  。

Procedure: 临时 inject 语言

1. 将文本光标放在您想注入语言的字符串字面量、标签或属性内，然后按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))（或使用意图操作图标 ![意图操作图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.codeInsight.intentionBulb.png)）。

2. 选择   inject 语言或引用  ，然后选择要 inject 的语言。

![临时 inject 语言](https://resources.jetbrains.com.cn/help/img/idea/2026.3/sql_injection_comment_html.png)

> **Note:**
> 如果此操作不可用，IDE 可能已经 [自动 inject 了 SQL 语言](#automatic-dialect-injection)。

### 选定框架中的自动受限标识符

如果项目基于 [Jakarta EE](java-ee.html)、 [Hibernate](hibernate.html) 或 [Spring](spring-support.html)，IntelliJ IDEA 可以自动检测适用的 SQL 方言，并将其 inject 到代码中的原生 SQL 查询。 以下技术的原生查询和语句支持此功能：

* [Hibernate](hibernate.html)

* [Jakarta 持久化](jakarta-persistence-jpa.html)

* Spring Data JDBC

* Spring Data JPA

IntelliJ IDEA 会根据项目设置确定 SQL 方言。 系统会检查以下配置，直到能够明确识别出唯一一个方言：附加到文件的 [查询控制台](query-consoles.html)、来自正在运行的 [Spring 调试器](spring-debugger.html) 会话的数据源、 [Spring Boot](spring-boot.html) 配置文件中的数据源 URL、 [数据库工具窗口](database-tool-window.html)中的数据源、 [持久化工具窗口](persistence-tool-window.html)中的数据源赋值，以及项目构建文件中的 JDBC 驱动程序。 如果 IntelliJ IDEA 无法确定唯一一个 SQL 方言，则会改为 inject 通用 SQL。

Procedure: 在专用编辑器部分中打开代码段

1. 将文本光标置于 inject 的代码片段内，然后按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))（或使用意图操作图标 ![意图操作图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.codeInsight.intentionBulb.png)）。

2. 选择   编辑 <language ID> 片段  。

IntelliJ IDEA 将打开一个专用编辑器区域，用于编辑带有已 inject 语言的代码。 此编辑器提供完整的编码辅助，包括代码补全、检查、意图和代码样式操作。

![在专用编辑器部分中打开代码段](https://resources.jetbrains.com.cn/help/img/idea/2026.3/sql_injected_html_editor.png)

Procedure: 取消注入

1. 将文本光标置于代码段处，然后按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))（或使用意图操作图标 ![意图操作按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.codeInsight.intentionBulb.png)）。

2. 选择   取消注入语言或引用  。

> **Tip:**
> 要取消语言受限标识符，也可以删除受限标识符注释或注解。

Procedure: 配置注入规则

您可以在   编辑器 | 语言注入   设置页面 `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)) 配置语言受限标识符规则。

所有预定义的受限标识符规则都配置为   内置   作用域。 换句话说，它们是全局的（因此在所有 IntelliJ IDEA 项目中都可用）。 自定义规则可以配置为适用于 IDE，或仅适用于一个项目。 要更改自定义受限标识符的作用域，请使用   移至项目/IDE 作用域   图标 ![“移动到项目/IDE 作用域”图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.import.svg)。

要配置自定义注入规则，请点击   添加   图标 !["添加"图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg) 添加新规则，或者复制预定义规则并更改其设置。

![语言注入设置](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_injections-settings.png)

## See also

### 语言和框架特定指南

[数据库工具和 SQL](relational-databases.html)

### 参考

[查询控制台参考](query-consoles.html#reference) [数据源和驱动程序对话框](data-sources-and-drivers-dialog.html)

