Spring jdbc templates: как лучше сохранить SQL-выражение вне кода - PullRequest
2 голосов
/ 29 сентября 2011

Кажется, что нет поддержки именованных запросов в шаблонах Spring JDBC. Под именованным запросом я подразумеваю возможность ссылаться на оператор SQL по имени в коде Java и сохранять фактические операторы в некотором файле конфигурации.

Ввиду отсутствия встроенной поддержки я изучаю наилучший подход к сохранению SQL-операторов вне кода Java.

Вот альтернативы:

  1. файл свойств
  2. файл свойств xml
  3. весенний контекст xml (внедрение зависимостей)

комментарии

Ответы [ 2 ]

5 голосов
/ 29 сентября 2011

Java - Хранение операторов SQL во внешнем файле

Я сделал одну систему, в которой запросы также хранились в БД, которая для того, что нам было нужно, была абсолютно идеальной, но очень интересной,Запрос на поиск запросов также находился в БД, что вызывало большую радость, когда он прерывался (не спрашивайте).

2 голосов
/ 29 сентября 2011

Все подходы, которые вы рассматривали в качестве альтернативы, будут работать, но вы добавляете дополнительный слой в свой дизайн, если вы перемещаете операторы из классов Java , что для меня не нужно. Рассмотрим издержки хранения операторов вне Java-класса.

  • Свойства и XML будут загружены для извлечения одного оператора.
  • Inject будет вводить ненужные операторы в классы.

Если бы я был вами, я создам класс и перечислю утверждение в static final. Это делает его прозрачным, избегает ненужных слоев и делает его гибким для тех, кто собирается поддерживать ваш код в будущем.

Пример:

//This does the job
public class SQLStatements
{
  static public final String GET_NAME="SELECT Name FROM some_table WHERE ID=?";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...