codecamp

IntelliJ IDEA在SQL中使用语言注入

在SQL中使用语言注入

此功能仅在Ultimate版本中受支持。
以下内容仅在安装和启用 IntelliLang、数据库工具和 SQL 插件时有效!

对于SQL中的语言注入,IntelliJ IDEA提供了以下附加功能:

  • 自动注入XML和JSON数据类型,请参阅“对XML和JSON使用自动注入”部分。
  • 数据类型模式,请参阅“对用户定义的数据类型使用基于模式的注入”部分。

对XML和JSON使用自动注入

对于定义为XML和JSON类型的值,会自动注入相应的语言。

示例:

  1. 创建一个SQL文件并在编辑器中打开它。
  2. 指定PostgreSQL作为该文件的SQL方言。
  3. 将以下内容复制到您的SQL文件中:
    CREATE TABLE test (
    my_xml XML DEFAULT ''
    );
  4. 将光标放在引号之间。
  5. 检查灯泡菜单(Alt+Enter):如果有Edit XML Fragment命令,这意味着XML已被自动注入。

对用户定义的数据类型使用基于模式的注入

您可以创建模式 - 例如用于用户定义的数据类型 - 并将这些模式与语言相关联。因此,当IntelliJ IDEA遇到与该模式匹配的数据类型时,它将注入为该模式指定的语言。

在下面的例子中,我们将为以DATA结尾的数据类型创建一个模式,并将该模式​​与XML相关联。

示例:

  1. 在你的SQL文件中,使用MYDATA来替换XML。
  2. 将光标放在引号之间。
  3. 按Alt+Enter。请注意,菜单中不再有Edit XML Fragment(编辑XML片段)命令。选择按类型注入,然后选择XML(XML文件)。
  4. 在打开的对话框中,在类型模式(Type pattern)字段中指定:(?i).*DATA。(类型模式使用正则表达式指定,在本例中,(?i)打开不区分大小写的模式; .*代表任意数量的任何字符。)
  5. 再次检查灯泡菜单(Alt+Enter)。“编辑XML片段(Edit XML Fragment)”命令已经变得可用,这意味着XML已经注入了MYDATA类型的值。
  6. 要删除刚刚创建的模式(如果您不需要它),请打开“设置/首选项(Settings / Preferences)”对话框(例如Ctrl+Alt+S),转至“编辑器|语言注入(Editor | Language Injections)”页面,查找和删除模式。
IntelliJ IDEA运行注入的SQL语句
IntelliJ IDEA扩展数据库工具的功能
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }