Хранение SQL-запросов в Конфигурационном файле?

Общий вопрос на том, что общее мнение находится на хранении SQL-запросов в конфигурационном файле?

Это - просто другой гараж для велосипедов?

С наилучшими пожеланиями, Ben

5
задан Ben Crowhurst 17 March 2010 в 12:01
поделиться

5 ответов

Нет. Никогда. Серьезно ;) Убираю это здесь в данный момент.

Попробуйте посмотреть на BLToolkit - хранит их в атрибутах прямо на абстрактном классе, под который они динамически генерируют весь код доступа. То же самое, что использовать их в конфигурационном файле, но без написания или просмотра глупого кода DAL.

1
ответ дан 14 December 2019 в 13:32
поделиться

Это то, что вы бы сделали, если бы использовали iBatis. Я не вижу в этом вреда.

Это лучше, чем их динамическое наращивание, когда в этом нет необходимости.

1
ответ дан 14 December 2019 в 13:32
поделиться

Каковы ваши аргументы для размещения их где-либо, кроме кода? Я обнаружил, что чаще всего SQL изменяется с той же скоростью, что и ваш код, а это означает, что если вы измените UserDao.java вам, вероятно, придется изменить sql-statements.properties одновременно. С учетом сказанного, код читается гораздо больше раз, чем написан, поэтому написание читаемого кода имеет решающее значение в чистой кодовой базе. С операторами SQL в отдельном файле разработчик должен искать в другом месте, чтобы выяснить, какой запрос использует ваш UserDao, что затрудняет понимание вашего кода.

Короткий ответ? Я бы избегал этого, если это возможно.

1
ответ дан 14 December 2019 в 13:32
поделиться

В таком случае я бы хранил их в базе данных:

  1. Это усложнит задачу обычного джо, который может возиться с моими запросами и поставить под угрозу мое приложение.
  2. Они не смогут узнать, как я храню свои данные.
  3. Изменения будут отражаться автоматически без необходимости "проталкивать" файл конфигурации.

Но на самом деле, я экстраполирую, не зная вашего реального сценария. Но если говорить прямо, я бы не хотел, чтобы другие видели, как я взаимодействую со своей схемой или как она устроена.

1
ответ дан 14 December 2019 в 13:32
поделиться

Мне кажется, это не так уж плохо, при условии, что он соответствует требованиям.

Вы пытаетесь разрешить покупателю просматривать и редактировать запросы?

Вы пытаетесь упростить разработку / тестирование?

Я определенно предпочитаю это встраиванию запросов в код.

Но есть риск, что этот файл будет раздуться множеством немного разных запросов (SORT ASCENDING, SORT DESCENDING, SUM (col1) + SUM (col2), SUM (col1) + SUM (col3) и т. Д.)

2
ответ дан 14 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: