IntelliJ IDEA-подсветка синтаксиса SQL внутри Java-кода

Я использую IntelliJ 13 в качестве IDE для проекта, где связь с БД осуществляется через шаблон JDBC Spring. Когда у меня есть фрагменты кода на 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 отсутствует. Знаете ли вы, как включить подсветку синтаксиса SQL staments для Java stings, которые не являются аргументами methonds JdbcTemplate или java.в SQL-интерфейсы?

1 ответов


вы можете сделать это через 1) настройку 2) аннотацию и/или 3) комментарий. Для любого из них вы должны иметь (в комплекте) IntelliLang плагин включен.

задание

можно добавить параметр, чтобы сказать, что параметр конкретного метода имеет определенный "язык" (например, SQL.)

  1. Открыть Настройки ( Ctrl+Alt+S / ,) > редактор > Языковые Инъекции
  2. справа нажмите кнопку Добавить и выберите Java Parameter
  3. на Настройки Языковой Инъекции выберите SQL (или нужный язык) в поле ID
    • вы также можете указать определенный диалект SQL, такой как MySQL, Oracle, etc.
  4. в поле "методы класса" введите метод, который вы хотите определить как принимающий