Применимо ли ORM для базы данных без CRUD? - PullRequest
1 голос
/ 06 марта 2010

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

Этот проект больше похож на отслеживание изменений для очень маленьких (<= 500 символов) документов. Мне нужно отслеживать изменения и классификации, сделанные несколькими пользователями. Не для того, чтобы увидеть конкретные изменения, которые они вносят, а для того, чтобы увидеть, согласны ли пользователи друг с другом. Я использую базу данных SQL для этого (в отличие от фактического контроля документов) по нескольким причинам: </p>

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

Из большей части того, что я прочитал, кажется, что вам нужно прямое сопоставление столбцов с полями данных в объекте для использования ORM. То, что я имею сейчас, даже близко не подходит к этому. Чтобы создать объекты, представляющие документы на разных этапах редактирования, мне нужно собрать воедино данные из столбцов в разных таблицах в разных комбинациях.

Итак, мой вопрос: Применяется ли ORM, такой как Hibernate, к этому типу проектов? И если это так, можно ли добавить его в существующее приложение / базу данных?

Если это имеет значение: я использую Java, MySQL и JDBC. Пользователи веб-приложения имеют доступ к изменениям, созданным с помощью GWT и размещенным через Tomcat6. Если мне это нужно, я полностью контролирую веб-сервер.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 06 марта 2010

Применяется ли ORM как Hibernate к этот тип проекта?

Да

И если это так, можно ли добавить к существующее приложение / база данных?

Да

1 голос
/ 06 марта 2010

Мое мнение таково, что инструмент ORM может быть полезен для вас, но вам действительно нужно вникнуть в него, чтобы убедиться в этом. Помните, что при использовании инструмента ORM вы не обязаны использовать только это для подключения к вашей базе данных. Инструменты ORM в целом наиболее полезны для приложений, которые хранят данные в очень объектной структуре. Например, ваш код пользователя может быть местом для начала. Обычно вы создаете только 1 пользователя за раз, вы редактируете 1 пользователя за раз, вы проверяете, вошел ли 1 пользователь. Это также имеет смысл для вещей, в которых вы бы возвращали список результатов, например Строки заказа. Я столкнулся с проблемами с инструментами ORM, когда у вас есть сложные данные, которые требуют многократных объединений, особенно обратно в таблицу, в которой вы начали. В целом, инструменты ORM великолепны, но они похожи на многие другие вещи в разработке программного обеспечения. Попробуйте их на небольшой части вашего кода и используйте их там, где они работают, а не там, где они не работают. В конечном счете, именно вам придется иметь дело с тем, что вы делаете, и поддерживать его. Просто обучите себя в Hibernate, и я уверен, что вы будете знать, что делать!

0 голосов
/ 06 марта 2010

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

Как вы говорите, довольно традиционно, когда столбцы базы данных отображаются непосредственно на полях объекта. Если вам нужно сохранить существующую структуру базы данных (которая, по-видимому, плохо сопоставляется с вашими объектами), то вы можете обнаружить, что это больше проблем, чем стоит использовать ORM.

Хотя, безусловно, можно использовать ORM для сопоставления с определенной схемой базы данных - возможно, потому, что она используется в других системах - я считаю, что одним из самых больших преимуществ ORM является то, что вы можете почти игнорировать схему. После того, как вы спроектируете свои объекты и расскажете о них в hibernate, hibernate создаст все необходимые им таблицы.

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