Встраивание mysql в приложение для Java-приложений

Я не знаю о деталях шагов/конфигурации о том, как я могу встраивать mysql в настольное приложение Java, чтобы его (приложение) можно было установить на любой машине через один исполняемый файл, и таким образом настраивает базу данных, а также предоставляет exe, чтобы запустить приложение. До сих пор я создал свое приложение, используя netbeans, и я использовал mysql для настройки database.plz. Дальше.

Ответ 1

MySQL не является встроенной базой данных - единственным JAR, связанным с ним, является драйвер JDBC. Это требует установки, которая может быть написана с помощью Java, но этот процесс определенно будет работать за пределами приложения Java, которое вы намерены ему поддерживать. Значит, вы можете отключить свое Java-приложение, но служба/демон MySQL будет по-прежнему работать.

Встраивается только libmysqld.

Есть встроенные базы данных - SQLite, Firebird и встроенные базы данных, созданные в Java - HSQL, Derby/(не помню, как это было вызвано ранее). Я считаю, что SQL Server Compact Edition встраивается, а SQL Server Express/MSDE - нет. Я не знаю, есть ли у Oracle встраиваемая версия....

Ответ 2

Я бы настоятельно рекомендовал H2. Это очень быстрая встроенная база данных, написанная на Java, и я нашел ее более простой в использовании, чем некоторые другие, такие как HSQL.

Edit:

На веб-сайте H2 вы можете увидеть сравнение скорости H2 против Derby, HSQL, MySql и т.д.

Здесь информация о том, как сделать резервную копию базы данных.

Ответ 3

В то время как теоретичность может быть непростой. Стандартные дистрибутивы MySql предполагают, что вы хотите настроить сервер базы данных общего назначения, отдельно от клиентских приложений, запускаемых через odbc и т.д.

Возможно, вам лучше посмотреть на опции "чистой java", такие как HSQL или JavaDB, которые предназначены для встраивания в Java-приложение и не требуют "настройки".

Другая возможность - это Sqlite, которая нуждается только в одном бинарнике плюс файл sqljbbc jar. Это снова создается с нуля, чтобы внедряться внутри приложения и требует нулевого администратора, кроме выделения файла для базы данных.

Ответ 4

Посмотрите http://dev.mysql.com/doc/refman/5.0/en/connector-mxj.html. Я не помню точных данных, но мне удалось встроить MySQL db в настольное приложение без необходимости установки отдельно.

Ключевым классом является com.mysql.management.MysqldResource.

Вот пример, http://dev.mysql.com/doc/refman/5.0/en/connector-mxj-configuration-java-object.html

Файл mysql-connector-mxj-gpl-db-files.jar содержит файлы установки MySQL для всех платформ. Если вы знаете, какая ваша целевая платформа, вы можете удалить другие версии платформы из jar, чтобы уменьшить размер загрузки для конечного пользователя.

Ответ 5

Если вы хотите встроенную базу данных с java, используйте один написанный на Java, предназначенный для встраивания. Я знаю, что Apache Derby может быть встроен и, очевидно, H2 тоже.

Как большой объем данных вам нужна база данных?