Все подходы, которые вы рассматривали в качестве альтернативы, будут работать, но вы добавляете дополнительный слой в свой дизайн, если вы перемещаете операторы из классов 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=?";
}