Hibernate отдельные файловые базы данных: настройка для тонкого клиента - PullRequest
4 голосов
/ 05 августа 2010

Я удаляю приложение Java Swing, которое сохраняет информацию через Hibernate, в настоящее время использующий PostgreSQL. Теперь я хотел бы упростить настройку базы данных на клиенте, и я думаю об отдельных файловых базах данных. База данных, которую я использую, довольно маленькая и простая, поэтому особых требований нет. Я прошу только один, который является стабильным и надежным.

Какие существуют решения, совместимые с Hibernate? В конечном приложении не должно быть никаких шагов установки, таких как установка сервера базы данных или около того. Идеальный сценарий - это разархивированный ZIP-файл, и все готово к работе, как в Eclipse.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 05 августа 2010

База данных Java, такая как JavaDB (он же Derby ), HSQLDB или более поздняя версия H2 (автор оригинала HSQLDB) во встроенном режиме все возможные кандидаты.Между ними JavaDB, как правило, считается наиболее надежным (полный ACID, устойчивость к сбоям, неограниченный размер БД и т. Д.) И будет моим выбором.

Вот краткое изложение причин:

  • H2 очень интересен, и я использую его для тестирования (его режим совместимости функция действительноотлично) но я не уверен в его зрелости для производственного использования.

  • H2 и HSQLDB быстрее, чем Derby, потому что они не синхронизируют данные на диск при фиксации - в то время как Derby делает.Таким образом, производительность обусловлена ​​отсутствием Durability .Если вы измените это поведение, все они достигнут некоторого узкого места: дисковый ввод-вывод .

  • HSQLDB поддерживает только грязное чтение , транзакции видят незафиксированные значенияиз других транзакций.

  • HSQLDB не полностью Атомный , транзакция может быть частично (WTF?) зафиксирована

  • Derby более мощный, имеет драйверы, совместимые со спецификациями, хорошо масштабируется.

Не поймите меня неправильно, я не говорю, что HSQLDB плох, но вы должны знать, с чем имеете делои в каком контексте / приложении.Иногда скорость важнее (например, для модульного тестирования), а иногда это целостность данных.Если вы находитесь в последнем случае, то лучше использовать Java DB для IMO.

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

Ссылки

1 голос
/ 05 августа 2010

Я долго использовал HSLQDB в сочетании с режимом гибернации.Это действительно быстрое, простое в использовании приложение для базовых требований малых дБ.

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