- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 IntelliJ 13 作为一个项目的 IDE,其中与 DB 的通信是通过 Spring 的 JDBC 模板完成的。当我在 Java 中有如下代码片段时:
getJdbcTemplate().queryForObject("SELECT CONVERT(VARCHAR(255), NEWID())", String.class);
其中 getJdbcTemplate() 返回初始化的 JdbcTemplate 对象,IDE 为 SQL 语句提供了正确的语法高亮显示(您可以在下面的代码片段中看到它):
.code {font-family: Monospace}
.db-stmt {background: #EDFCED}
.db-keyword {color: #000080; font-weight: bold;}
.db-column {color: #7D0C8D; font-weight: bold;}
.db-number {color: #0000FF;}
.java-class {color: #39008E; font-weight: bold;}
<span class="code">getJdbcTemplate().queryForObject("<span class="db-stmt"><span class="db-keyword">SELECT CONVERT</span>(<span class="db-keyword">VARCHAR</span>(<span class="db-number">255</span>), NEWID())</span>", String.<span class="java-class">class</span>);</span>
但是,当我使用我创建的另一种方法时:
protected String queryForString(String sql, Object... args) {
try {
return getJdbcTemplate().queryForObject(sql, String.class, args);
}
catch (RuntimeException e) {
return null;
}
}
对于相同的查询:
queryForString("SELECT CONVERT(VARCHAR(255), NEWID())");
SQL语句没有语法高亮。您知道如何为不是 JdbcTemplate 或 java.sql 接口(interface)方法参数的 Java 字符串启用 SQL 语句的语法高亮显示吗?
最佳答案
您可以通过以下任意组合来做到这一点:
对于其中任何一个,您必须拥有(捆绑)IntelliLang
插件已启用。
您可以添加一个设置来说明特定方法的参数是某种“语言”(例如 SQL)。
Java Parameter
SQL
(或所需的语言)在 ID 字段中
MySQL
, Oracle
等SQL
的方法范围。您可以通过省略号按钮打开类浏览器/搜索窗口
现在,当您使用该方法时,IntelliJ IDEA 将自动应用语言注入(inject):
您可以将方法参数(或变量或字段)注释为特定语言类型。默认情况下,IntelliJ IDEA 将使用 org.intellij.lang.annotations.Language
annotations.jar
中的注释包含在 IntelliJ IDEA 中。它位于 <installDirectory>/redist/annotations.jar
或者在 Maven 中心,org.jetbrains:annotations
注意:还有一些非官方上传的带有不同组 ID 的注释 jar,包括(但不限于)“com.intellij”。这是因为多年前,JetBrains 并没有将它们上传到 Maven Central。所以一些社区成员这样做了,但是在不同的组 ID 下。在过去的几年里,JetBrains 一直在使用(官方)组 ID“org.jetbrains”上传它们。这是其他工件在其 POM(例如 Kotlin POM)中使用的,因此应该使用。
将注释 JAR 添加到您的类路径中。 (在大多数情况下,JAR 只需要在类路径上进行开发,而在运行时不需要。因此您可以使用“提供”的 maven <scope>
。)然后将您的方法的参数注释为 SQL。请注意,当您键入语言类型时,代码完成将起作用:
public void checkDatabase(String foo, @Language("SQL")String sql, String bar)
我喜欢注释,因为即使对于非 IntelliJ IDEA 用户,它也让他们知道字符串应该是有效的 SQL、XML、CSS 或其他任何东西。您还可以注释变量或字段:
如果需要,您可以更改要在设置中使用的注释 (Ctrl+Alt+S/⌘ ,) > 编辑器 > 语言注入(inject) > 高级
作为注释的替代方法,您可以使用注释。 (我不记得这是什么时候添加的。所以它可能不在 v13 中)。不过据我所知,通过注释进行的语言注入(inject)仅适用于变量和字段。它不适用于参数。例如:
有关详细信息,请参阅 IntelliJ IDEA user guide
关于java - IntelliJ IDEA - SQL Inside Java 代码的语法高亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30753512/
在这个 fiddle 上,函数完美地完成了工作,但我需要稍微调整连接。 该点击甚至需要是父 div 的 addClass(深色/浅色)(true 或 false)。 如果是深色,则添加 Bright
我正在使用 Windows.UI.ViewManagement.UISettings 来获取系统强调色,但该类似乎没有任何亮/暗模式的方法或属性。我找不到此功能的文档,我该如何检测? PS:我正在制作
在使用 iOS 13 在明暗模式之间切换时,我遇到了显示键盘的异常行为。 该 View 有一个 inputAccessoryView 供用户输入消息。当然后在键盘显示的情况下切换亮/暗模式时,亮/暗模
我正在开发一个支持多个主题的 iOS 应用程序。有些主题使用深色背景,有些使用浅色。一些默认图标在深色/浅色背景中不可见。我在 xcassets 中看到一个选项,可以为不同的颜色模式添加图像。我的目标
一些上下文:Sciter (纯 win32 应用程序)已经能够呈现类似 UWP 的 UI: 在深色模式下: 在灯光模式下: Windows 10.1803 在设置小程序中引入深色/浅色开关 as se
我是一名优秀的程序员,十分优秀!