Шаблоны проектирования для взаимодействия с реляционными базами данных? - PullRequest
2 голосов
/ 16 июня 2009

Кто-нибудь знает какие-либо шаблоны проектирования для взаимодействия с реляционными базами данных? Например, лучше ли встроить SQL в свои методы или создать экземпляр объекта SQL, в который вы передаете данные, и он строит операторы SQL? Есть ли у вас статический метод для возврата строки подключения, и каждый метод просто получает эту строку и подключается к БД, выполняет свое действие, затем отключается по мере необходимости, или у вас есть другие структуры, отвечающие за подключение, выполнение, отключение и т. Д.

Другими словами, если база данных уже существует, каков наилучший способ взаимодействия ОО-приложений с ней?

Спасибо за любую помощь.

Ответы [ 7 ]

4 голосов
/ 16 июня 2009

Рекомендую книгу Мартина Фаулера «Образцы архитектуры корпоративных приложений» для подробного обзора наиболее распространенных ответов на эти вопросы.

3 голосов
/ 16 июня 2009

Есть несколько шаблонов, которые вы можете использовать:

1 голос
/ 16 июня 2009

Мне лично не хотелось бы работать с базой данных без ORM. NHibernate предпочтительнее, но iBatis также является опцией для существующих баз данных (не говоря уже о том, что NH не может обрабатывать существующие базы данных).

0 голосов
/ 16 июня 2009

POEAA обладает обширными знаниями по этому вопросу, если вы намереваетесь бросить свои собственные.

0 голосов
/ 16 июня 2009

По моему опыту, лучше вообще не иметь операторов SQL (большинство ORM допускают это), и лучше не знать детали соединения (строка подключения и т. Д.). Еще лучше, если вы можете иметь один и тот же кусок кода, работающий с любым крупным поставщиком БД.

0 голосов
/ 16 июня 2009

В общем, лучший способ взаимодействия ОО-приложений с реляционной базой данных - через ORM; хотя сам по себе это не шаблон проектирования, это тип инструмента, который имеет определенный шаблон использования, поэтому он достаточно похож. Инструменты Object Relational Mapping (ORM) обеспечивают отображение между базой данных и набором объектов в памяти; обычно эти инструменты предоставляют средства для управления такими вещами, как сеансы, соединения и транзакции. Хорошим примером ORM, который работает фантастически хорошо, был бы Hibernate (NHibernate на .NET).

0 голосов
/ 16 июня 2009

Все, что вы узнаете по поиску в DAL, описывает шаблон проектирования. Похоже, что вы стоите посреди леса и просите увидеть дерево. Есть десятки, если не тысячи.

Вот цитата из книги, которую я читаю для начала поиска ресурсов.

... невозможно обсудить ORM, не говоря о шаблонах и лучших практиках для создания уровней персистентности. С другой стороны, также невозможно обсуждать модели ORM без вызова гуру в отрасли, а именно: Мартина Фаулера, Эрика Эванса, Джимми Нильссона, Эриха Гамма, Ричарда Хелма, Ральфа Джонсона и Джона Влиссида, последние четыре из которых известны в отрасли как банда четырех (GoF). Цели этой главы состоят в том, чтобы объяснить и расширить некоторые шаблоны, созданные этими гуру, и предоставить конкретные примеры с использованием языка, понятного каждому разработчику.

...