Приложение для БД - PullRequest
       32

Приложение для БД

1 голос
/ 31 января 2012

База данных для одного приложения, над которым я работаю, еще не подтверждена бизнесом.

  • Лучшее предположение - Oracle и DB2.
  • Что я слышал, так это то, что первоначально проект будет запущен с DB2 V9, а затем с Oracle 11g.

Мы используем Spring 3.0.5, Hibernate 3.5, JPA2 и JBoss5 для этого проекта

Итак, каковы здесь лучшие практики на этапе сборки и тестирования?

  1. Должен ли я сначала собираться с использованием DB2, а потом беспокоиться о Oracle (это незвучит правильно)?
  2. Или я должен писать с использованием JPA (Hibernate), а затем генерировать схему базы данных?
  3. Или что-то еще?

PS: Я не могу контролировать выбор БД, что и когда, так как это стратегическое решение, принимаемое людьми, сидящими в хороших комнатах.жирные чеки и большие бонусы.

Спасибо, Ади

Ответы [ 3 ]

4 голосов
/ 31 января 2012

Очевидно, что вы теряете доступ к определенным функциям базы данных, если вы пишете независимую базу данных приложения.База данных, за исключением автоматической оптимизации, выполняемой JPA и Hibernate, сводится к общим функциям.Вы должны установить некоторые вещи на автоматический и доверять JPA / Hibernate, чтобы сделать это правильно, что вы могли бы установить конкретно, если бы вы знали базу данных (например, стратегии генератора идентификаторов).

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

Так что ИМХО у вас нет выбора,Строго избегайте ничего конкретного базы данных.Это включает в себя разрешение JPA / Hibernate генерировать схему (ваша точка № 2).В этой настройке проекта вы не должны возиться с базой данных вручную.

Ну ... к сожалению, в JPA / Hibernate есть некоторые скрытые ловушки, которые делают ее зависимой от базы данных (например, логарифмические функции не отображаются согласованно).Таким образом, вы должны запустить все свои тесты для всех возможных баз данных с первого дня.Когда вы пишете «Наилучшее предположение ...», вам нужно просто взять любую базу данных и протестировать ее.Должно быть легко настроено с данным стеком.

И вы должны попытаться ускорить решение об используемой базе данных, если это возможно.

2 голосов
/ 31 января 2012

Просто "пишите с помощью JPA (Hibernate)", чтобы сделать его независимым от базы данных. Поместите всю свою бизнес-логику в код Java, а не в хранимые процедуры.

Если вы используете пружину, вам не нужен jboss, вы можете использовать только tomcat, около четверти отпечатка ноги и намного проще imho.

Spring против Jboss и jboss представляет все, что плохо, в то время как Spring представляет все, что хорошо в разработке корпоративных Java-приложений

0 голосов
/ 20 января 2017

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

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

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

...