【发布时间】:2015-06-10 10:19:41
【问题描述】:
我正在使用 IntelliJ 13 作为一个项目的 IDE,其中与 DB 的通信是通过 Spring 的 JDBC 模板完成的。当我在 Java 中有如下代码片段时:
getJdbcTemplate().queryForObject("SELECT CONVERT(VARCHAR(255), NEWID())", String.class);
其中 getJdbcTemplate() 返回初始化的 JdbcTemplate 对象,IDE 对 SQL 语句有适当的语法突出显示(您可以在下面的 sn-p 中看到它):
.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 接口的方法参数的 Java 字符串启用 SQL 语句的语法突出显示吗?
【问题讨论】:
-
您可以尝试选择部分 SQL 查询,按 Alt ENTER 并选择注入语言参考/SQL。不确定它对于给定方法的参数是临时的还是永久的......
-
好的,我不知道这种可能性。现在对我有用,但我希望有一个永久的解决方案(比如一些设置或注释......)
标签: java sql intellij-idea syntax-highlighting