В настоящее время я изучаю Java и качаюсь и при этом пытаюсь создать настольное приложение.
Как часть этого приложения, я настроил базу данных mysql, к которой подключено приложение, однако я не уверен, как это будет работать, если я буду распространять приложение для других пользователей, как бы создать базу данных, они могут использовать их в своей системе, если они не установлены mySQL или инициирована база данных.
Помощь с этим была бы высоко оценена.Распределенная Java-приложение для рабочего стола mySQL-база данных
ответ
Вы должны использовать встроенную базу данных. Я бы не рекомендовал MySQL для коммерческих приложений, потому что это очень дорого. Попробуйте использовать HSQLDB - очень быстро и не имеет утечек памяти (по крайней мере, я не заметил).
Вот пример реализации:
private static Connection conn;
/**
* Gets database connection.
*
* @return the database connection.
* @throws SQLException if database error occurs.
*/
public static Connection getConnection() throws SQLException {
if (conn == null || conn.isClosed()) {
conn = DriverManager.getConnection("jdbc:hsqldb:file:data", "somedb", "");
// conn.setAutoCommit(false);
}
return conn;
}
Убедитесь, что вы добавили hsqldb.jar
файл в библиотеках.
Я бы предложил посмотреть на SQLite вместо mySQL. Похоже, вам нужна отдельная база данных, для которой не требуется запуск сервера. Я сделал как Java (и Android), Swing, так и C#. Я обнаружил, что SQLite - лучшее решение для базы данных на разных платформах, а не для установки сервера.
Было бы легко преобразовать из mySQL, который я сейчас использую для SQLite? –
Я нашел, что это очень просто, хотя есть кривая обучения, как с чем-либо еще. – SteveFerg
Что бы это ни стоило, мы также успешно использовали SqlLite с Borland Delphi (теперь Embarcadero XE). Продукт был распространенным приложением для боулинга. Основной базой данных был SQL Server. Но каждая пара дорожек имела базу данных SQLLite для поддержки локальной резервной копии имен и оценок (в случае, если соединение с MSQL когда-либо снижалось). – paulsm4
У вас есть три варианта:
Каждый рабочий стол будет иметь свою собственную, частную базу данных.
Каждый рабочий стол разговаривает с одним удаленным сервером базы данных.
Каждый настольный компьютер разговаривает с веб-интерфейсом на удаленном сервере базы данных.
«Вариант 3» является наиболее распространенным сценарием. Одним из вариантов является «веб-приложение» (в этом случае вам вообще не нужно приложение «Swing desktop»). Другим вариантом является «толстый клиентский Java-апплет». Вы можете использовать Swing, большая часть обработки будет локальной ... но ваш Swing-апплет будет связываться с удаленной базой данных для доступа к базе данных. Вы можете рассмотреть интерфейс REST.
Если вы действительно хотите, чтобы опция 1 (приложение и база данных полностью локализована на рабочем столе), я бы определенно пошел с embedded database. Sqlite - отличный выбор. На самом деле Android использует Sqlite. HSQLDB или даже MS-Access также может быть хорошим выбором.
Что мне нужно - это вариант 1, где каждый пользователь имеет свою собственную и уникальную базу данных –
Что касается вашей проблемы, я бы спросил, делитесь ли вы информацией о базе данных среди пользователей вашего приложения. Я имею в виду, если вам нужны данные, централизованные в одной базе данных, пользователи могут получить доступ через приложение Swing рабочего стола.
Если это так, тогда вам понадобится другое приложение, которое предоставит информацию, хранящуюся в базе данных (на данный момент вы можете использовать веб-службы), тогда вам просто нужно будет реализовать код клиента Web-сервиса для взаимодействия с вашей базой данных через приложение Swing.
Теперь, если вы хотите использовать независимое приложение с базой данных для каждого пользователя.Тогда вы можете пойти на много вариантов таких:
Надеется, что это может дать вам ориентироваться в то, что вам нужно реализовать.
Счастливое кодирование.
- 1. C# Обновление рабочего стола рабочего стола
- 2. Внешние плагины для рабочего стола для рабочего стола Phonegap
- 3. Scala для рабочего стола
- 4. MVC.NET для рабочего стола
- 5. MapKit для рабочего стола?
- 6. Выбор базы данных рабочего стола
- 7. Приложения для рабочего стола Python
- 8. Рамка для рабочего стола Java
- 9. Рамки для рабочего стола Java
- 10. Приложение JSF для рабочего стола
- 11. Android обои для рабочего стола
- 12. Пакет libgdx для рабочего стола
- 13. библиотека для удаленного рабочего стола
- 14. Изменение обоев для рабочего стола
- 15. андроид обои для рабочего стола
- 16. flash-приложение для рабочего стола
- 17. SetTimeout только для рабочего стола
- 18. GCM-клиент для рабочего стола
- 19. Меню рабочего стола для гамбургера
- 20. отладчик javascript для рабочего стола
- 21. Доступность приложения для рабочего стола
- 22. окно рабочего стола уведомление
- 23. Передача данных с одного рабочего стола/веб-приложения на другое приложение для рабочего стола
- 24. Таблица рабочего стола Sharepoint
- 25. Qt приложения рабочего стола
- 26. Мониторинг данных с рабочего стола до интернета
- 27. Инструменты для очистки данных для рабочего стола/Windows-приложения
- 28. Сервер базы данных для простого приложения для рабочего стола Java
- 29. Безопасность рабочего стола Sitecore
- 30. Разработка кроссплатформенного рабочего стола
Вы имеете в виду 'Enterprise Edition' от * MySQL для коммерческих приложений *? –
Я где-то участвовал в обсуждении использования MySQL для коммерческих приложений - и обнаружил, что для небольших проектов это слишком дорого. Так что переключился на HSQLDB - это здорово. Также попробовал JavaDB/Derby - но испытал утечку памяти. Не уверен в настоящее время о лицензировании MySQL, вы должны проверить себя. –
Существует бесплатная версия Community Edition. Так как это может быть слишком дорого? –