Поддержка / Автоматическое создание IBatis SQL Maps?

Я только начал новую работу и унаследовал проект от ада. Ад = {2 года по графику, слишком сложный, использует и Oracle, и SQL Server}

На сервере Oracle хранится более 100 хранимых процедур, и у каждой есть IBatis SQL Map. Некоторые делят одну и ту же карту результатов. Администратор БД любит ежедневно менять магазины и не рассказывать мне об этом.

Вопрос: Существуют ли какие-либо инструменты, которые могут исследовать все карты IBatis SQL в решении. В идеале это будет проверять:

  1. Процедура хранения существует
  2. Параметры процедуры хранения совпадают с параметрами в карте параметров
  3. Результат процедуры Store [имена столбцов] совпадают с результатами в карте результатов
  4. В результате выполнения процедуры Store не пропущено ничего, указанного на карте результатов.
  5. Названия свойств объекта на карте результатов совпадают с названиями, перечисленными на карте результатов.

Предыстория: я обычно использую только SQL Server и SubSonic 2.2 в качестве ORM. Таким образом, я просто выполняю команду, и мой DAL волшебным образом генерируется автоматически. Таким образом, если нужный мне столбец отсутствует, я получаю довольно простую для понимания ошибку времени компиляции, а не сбивающую с толку ошибку времени выполнения. Есть ли подобный инструмент, который я мог бы использовать здесь?

Спасибо за вашу помощь!

2 ответа

Существует инструмент под названием Ibator, но я не думаю, что он был предназначен для того, что вы описываете. Мой подход заключается в создании тестов, которые используют код iBatis. Таким образом, когда тест не пройден, вы знаете, что что-то не так. Еще вы можете использовать метаданные Oracle для проверки существования процедур и т. Д. Эти проверки могут быть дополнительными тестами.

Прошло много времени с тех пор, как я коснулся Oracle, но если я правильно помню, вывод хранимых процедур (например, из select) нигде не объявляется. Следовательно, он должен был быть реверс-инжиниринг с помощью инструмента. LinqToSql пытается сделать это с частичным успехом для SQL Server, но обычно это сложный и ненадежный процесс. Таким образом, кажется, что пункты 3-5 в вашем списке практически недоступны при использовании кода gen/tooling. Я не слишком углубился в поддержку SubSonic 2.2 для хранимых процедур, но я предполагаю, что это будет бороться и с пунктами 3-5. Напротив, отдельные выходные поля, объявленные как часть хранимой процедуры, довольно просты для работы.

Пункты 1 и 2 гораздо более достижимы, но я не знаком с инструментами, доступными в iBatis, извините. Я не думаю, что iBatis или Oracle действительно имеют какое-то отношение к вашей проблеме.

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

Другие вопросы по тегам