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.)
- Открыть Настройки ( Ctrl+Alt+S / ⌘,) > редактор > Языковые Инъекции
- справа нажмите кнопку Добавить и выберите
Java Parameter
- на Настройки Языковой Инъекции выберите
SQL
(или нужный язык) в поле ID- вы также можете указать определенный диалект SQL, такой как
MySQL
,Oracle
, etc.
- вы также можете указать определенный диалект SQL, такой как
- в поле "методы класса" введите метод, который вы хотите определить как принимающий