Чистые драйверы Java SQLiteJDBC действительно чистые?

Я принимаю решение о встраивании базы данных в готовящееся приложение Java-сервлетов. Осталось два последних претендента: SQLite с драйверами SQLiteJDBC «чистая Java» против Java DB (также известного как Derby).

Вот мой критерий убийцы: приложение должно работать на любой ОС, поддерживающей Java, в частности, у нас есть Solaris, CentOS , Хосты Windows x86 и Windows x64, которые потребуются для запуска приложения. И установка не должна включать ничего, кроме копирования файла war в папку развертывания целевого сервера и предоставления серверу возможности сделать все остальное (что представляет собой не что иное, как просто копирование zip-архива на целевой сервер, а затем разрешение серверу разархивировать и запустить приложение). Не должно быть никакой возни с собственными двоичными файлами в рамках установки и никакой дополнительной логики установки. (На самом деле это не мое требование, это требование компании для всех приложений на основе сервлетов, но мне это нравится.)

Я знаю, что Derby (Java DB) соответствует вышеуказанным критериям. Я делал это один или два раза. Но мне очень нравится однофайловая архитектура SQLite и тот факт, что сообщество SQLite примерно в 20 раз больше, чем сообщество Derby. Я также опасаюсь, что Oracle когда-нибудь убьет Дерби, поскольку теперь у них есть около пяти конкурирующих продуктов баз данных под своей крышей, и это не может продолжаться вечно. Дерби, вероятно, станет первой жертвой, когда начнется уборка.

Итак, я смотрел на SQLiteJDBC, который утверждает, что имеет драйверы JDBC "чистой Java" для SQLite. Я бы понял, что «чистая Java» означает отсутствие зависимостей ОС или дополнительных библиотек, что можно запускать драйвер в любой JVM на любой ОС. Итак, я иду и беру файл jar с чистыми драйверами Java. И я из любопытства заглянул внутрь. Затем я замечаю, что он содержит в корне 4 файла с расширениями «.lib», а именно:

linux-amd64.lib
не продолжаться вечно. Дерби, вероятно, станет первой жертвой, когда начнется уборка.

Итак, я смотрел на SQLiteJDBC, который утверждает, что имеет драйверы JDBC "чистой Java" для SQLite. Я бы понял, что «чистая Java» означает отсутствие зависимостей ОС или дополнительных библиотек, что можно запускать драйвер в любой JVM на любой ОС. Итак, я иду и беру файл jar с чистыми драйверами Java. И я из любопытства заглянул внутрь. Затем я замечаю, что он содержит в корне 4 файла с расширениями «.lib», а именно:

linux-amd64.lib
не продолжаться вечно. Дерби, вероятно, станет первой жертвой, когда начнется уборка.

Итак, я смотрел на SQLiteJDBC, который утверждает, что имеет драйверы JDBC "чистой Java" для SQLite. Я бы понял, что «чистая Java» означает отсутствие зависимостей ОС или дополнительных библиотек, что можно запускать драйвер в любой JVM на любой ОС. Итак, я иду и беру файл jar с чистыми драйверами Java. И я из любопытства заглянул внутрь. Затем я замечаю, что он содержит в корне 4 файла с расширениями «.lib», а именно:

linux-amd64.lib
Это означает, что нет никаких зависимостей ОС или дополнительных библиотек, что можно запустить драйвер в любой JVM на любой ОС. Итак, я иду и беру файл jar с чистыми драйверами Java. И я из любопытства заглянул внутрь. Затем я замечаю, что он содержит в корне 4 файла с расширениями «.lib», а именно:

linux-amd64.lib
Это означает, что нет никаких зависимостей ОС или дополнительных библиотек, что можно запустить драйвер в любой 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?

Все ответы приветствуются !!!

Заранее спасибо, Джон

7
задан John Fitzpatrick 21 November 2010 в 14:46
поделиться