Я принимаю решение для встроенной базы данных в будущем приложении сервлета Java.Я дошел до двух последних претендентов: SQLite с драйверами SQLiteJDBC «чистая Java» против Java DB (он же Derby).
Вот мой критерий убийцы: приложение должно работать на любой ОС, которая поддерживает Java, в частности, у нас естьХосты Solaris, CentOS, Windows x86 и Windows x64, которые будут необходимы для запуска приложения.И установка должна включать в себя не что иное, как копирование файла war в папку развертывания целевого сервера и предоставление возможности серверу делать все остальное (что является не чем иным, как простым копированием zip-файла на целевой сервер, а затем позволяет серверу разархивировать и запустить приложение).В процессе установки не должно быть никаких проблем с собственными двоичными файлами и никакой дополнительной логики настройки.(На самом деле это не мое требование, это компания, для всех приложений на основе сервлетов, но мне это нравится).
Я знаю, что Derby (Java DB) отвечает вышеуказанным критериям.Я сделал это один или два раза.Но мне очень нравится архитектура с одним файлом SQLite и тот факт, что сообщество SQLite примерно в 20 раз больше, чем сообщество Derby.У меня также есть опасение, что Oracle когда-нибудь убьет Дерби, поскольку у них сейчас есть что-то вроде пяти конкурирующих продуктов баз данных под их эгидой, и это не может продолжаться вечно.Вероятно, Derby станет первой жертвой, когда начнется ведение домашнего хозяйства.
Итак, я смотрел на SQLiteJDBC, который утверждает, что имеет драйверы JDBC для «чистой Java» для SQLite.Теперь я понимаю, что «чистая Java» означает, что нет никаких зависимостей ОС или дополнительных библиотек, что можно запустить драйвер в любой JVM в любой ОС.Итак, я иду и получаю файл jar с чистыми драйверами Java.И, будучи любопытным, я заглядываю внутрь.Затем я замечаю, что в корне содержится 4 файла с расширениями ".lib":
linux-amd64.lib
linux-x86.lib
mac-universal.lib
win-x86.lib
Хорошо, что с этим?Это как родные библиотеки для названных ОС?Если да, могу ли я предположить, что этот чистый драйвер Java будет работать только на платформе с соответствующим файлом lib в банке?Если это так, мне, к сожалению, придется исключить SQLite из списка претендентов, потому что winX64 и Solaris являются нашими двумя наиболее важными ОС здесь.
Или, может быть, я неправильно истолковал и действительно чистый драйвер Javaтакое чистая Java и она будет работать в любой JVM?
Все ответы приветствуются !!!
Заранее спасибо, Джон