Первая вероятная проблема заключается в URL вы используете:
, который должен быть таким:
jdbc:mysql://[my-sql-server-ip]:3306/inventory
обычно для небольших приложений, которые вы можете поместить сервер-IP и сервер-порт в .properties рядом с файлом jar. Если вы не хотите иметь этот файл, у вас может быть очень простая форма GUI при запуске приложения, чтобы получить сервер-ip и сервер-порт от пользователя. (Не делайте жестким, если это не приложение для конечного пользователя. Получите ввод просто с помощью JOptionPane.ShowInputDialog (...) и динамически введите URL-адрес вашего подключения на основе ввода пользователя.)
Если server-ip не проблема, обычно вторая проблема заключается в том, что файл jar-соединителя для my-sql не находится в пути к вашему приложению.
Есть два способ решения:
- Уродливый, но простой способ: скачать исходные файлы для соединителя моего-SQL с сайта моего-SQL и поставить коды всех исходные в вашем приложении, а затем может создать файл Big Fatty jar, который содержит классы соединителя для my-sql.
Это не выбор экспертов, потому что философия JDBC является: Не рассчитывайте свои коды слоя базы данных к конкретной базе данных, и когда вы впрыскивать источник моих-SQL разъема в вашем проекте, вы так связаны с этим. Также, если вы хотите обновить соединитель my-sql для своего проекта, вам необходимо перекомпилировать свой проект. Я не могу сосчитать недостатки этого решения, вы можете прочитать об этом сами.
- Лучше всего: поставить манифест в проект (тогда он будет в вашем файле jar файла), чтобы объявить зависимости пути к курсу. Затем создайте папку рядом с вашим выходным файлом jar, который содержит соединитель и, возможно, другие зависимости для вашего проекта.
Например, в корневой папке:
root-folder
+ [your output jar name].jar
+ [lib folder name]
+ mysql-connector-java-[your version].jar
и записи для манифеста.MF файл:
Manifest-Version: 1.0
Class-Path: [lib folder name]/mysql-connector-java-[your version].jar
Main-Class: [fully qualified package and class name without .java to your main class]
, например:
Main-Class: com.staefi.main.App
Какого App.java класс с основным методом, чтобы запустить программу.
Другой совет: поместите файл MANIFEST.MF в корневую папку src вашего проекта внутри папки META-INF. Например:
src
+ META-INF
+ MANIFEST.MF
+ [your packages start here]
И, наконец, вы можете заархивировать ROOT-FOLDER, чтобы создать портативный выход вашего проекта и зависимостей.
Также можно создать файл bat/sh для сохранения пути к классу и выполнения вашего файла jar, но он настолько похож на описанный выше. Если бы вы, я бы не вводил классы соединителя в мой выходной файл jar.
Удачи.
Подробнее здесь. Что значит «не подключиться» - какое сообщение об ошибке вы получаете? Это поиск базы данных, но не подключение или, к сожалению, не удается найти базу данных. – MrB
Он работает, если банка работает на серверном компьютере (подключен к db). но когда я копирую файл jar на другой компьютер в той же сети, он не будет подключаться. –
Я решил эту проблему. Поэтому я должен скопировать соединительную банку на другой компьютер. Кто-нибудь знает, как построить эти банки в 1 банке? Так что мне не нужно копировать коннектор jar –