Код отображения данных или код отражения? - PullRequest
3 голосов
/ 14 апреля 2009

Получение данных из таблицы базы данных для объекта в коде всегда казалось обычным кодом. Я нашел два способа сделать это:

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

Проблемы, отмеченные вышеупомянутыми 2 методами, указаны ниже

  • Метод 1 кажется мне, что я что-то упустил, потому что я должен создать контроллер для каждой таблицы.
  • Метод 2 кажется слишком трудоемким, когда вы получаете тяжелые данные код доступа.

Есть ли третий путь, по которому я должен пытаться получить данные из базы данных на мои объекты?

Ответы [ 4 ]

3 голосов
/ 14 апреля 2009

В таких ситуациях вы обычно используете OR (Object-Relational). Хороший фреймворк, обеспечивающий функциональность ИЛИ - Hibernate . Это отвечает на ваш вопрос?

1 голос
/ 14 апреля 2009

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

Я, например, очень успешно использую ORM (NHibernate), поэтому, естественно, я могу порекомендовать первый вариант.

Есть и другие варианты, которые вы можете выбрать, хотя:

  • Если вы используете .NET, вы можете использовать атрибуты для своих свойств класса, чтобы они служили либо как отображение внутри класса, либо как данные, которые могут быть отражены
  • Если вы используете .NET, Fluent NHibernate значительно упростит создание безопасных для типов отображений в вашем коде.
  • Вы можете использовать непатентованные средства, чтобы вам не нужно было создавать контроллер для каждой таблицы, хотя я допускаю, что, скорее всего, вы все равно будете делать последнее. Тем не менее, дженерики могут содержать большинство общих методов CRUD, которые являются общими для всех таблиц, и вам нужно будет только кодировать определенные причуды.
0 голосов
/ 14 апреля 2009

Я согласен с lewap, ORM (объектно-реляционный картограф) действительно помогает в таких ситуациях. Вы также можете рассмотреть шаблон Active Record (обсуждается в книге Фаулера «Шаблоны корпоративной архитектуры»). Это действительно может ускорить создание DAL в простых приложениях.

0 голосов
/ 14 апреля 2009

Я использую отражение для отображения данных туда и обратно, и это хорошо работает даже при интенсивном доступе к данным. «Третий путь» - делать все вручную, что может быть быстрее, но писать очень медленно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...