Подключение к внешней базе данных mysql с DriverManager - Java
Я предполагаю, что это простая синтаксическая ошибка с моей стороны. Я купил план веб-хостинга некоторое время назад и у меня есть несколько пустых баз данных MySQL, которые я просто хочу попрактиковаться в подключении и передаче некоторых данных.
Я нашел множество сообщений о том, как это сделать, но все они используют "localhost" в качестве IP. Я собрал этот синтаксис из других постов, но все равно получаю сообщение об ошибке
Unable to connect to database error: java.sql.SQLException: No suitable driver found for jdbc:mysql://ipAddress:port/dbName
Везде, где я смотрел, говорится, что это проблема с URL или драйвер не был загружен. Я скачал и поместил.jar в Classpath в IntelliJ, но не смог найти ничего дополнительного о загрузке файла драйвера. Это мой код, IP-адрес - это IP-адрес моего сайта.
Connection connection = null;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception err){
System.out.println(err.getMessage());
}
//Establish connection using DriverManager
try {
String host = "jdbc:mysql://ipAddress:3306/dbName";
String uName = "userName";
String uPass= "userPass";
connection = DriverManager.getConnection(host, uName, uPass);
} catch (SQLException err) {
System.out.println("Unable to connect to database error: "+err);
}
Я попытался изменить "хост" на несколько разных вещей, которые я видел в Интернете:
jdbc:mysql:ipAddress:3306/dbName
jdbc:mysql://ipAddress/dbName
Я следил за этим также, но моя проблема главным образом заключается в URL, я думаю. http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzaha%2Fdb2drivr.htm
Любая помощь будет оценена!
РЕДАКТИРОВАТЬ: Я скачал этот.jar и не знал, где его разместить, поэтому я просто положил его в этот каталог, а затем я связал этот каталог как Classpath.//Library/Java/JavaVirtualMachines/jdk1.7.0_12.jdk/Contents/MacOS/mysql-connector-java-5.1.22-bin.jar!/
По этой ссылке: JConnector
Я запускаю это со своего компьютера и хочу, чтобы он подключился к моей базе данных провайдеров веб-хостинга. Программа представляет собой простое Java-приложение, которое получает данные из текстовых полей в JFrame.
4 ответа
Ваше конкретное сообщение об ошибке:
Unable to connect to database error: java.sql.SQLException:
No suitable driver found for jdbc:mysql://ipAddress:port/dbName
Будет происходить, когда исполняющая JVM не может найти ваше приложение, не может найти MySQL Connector/J
JAR в своем classpath.
В IntelliJ вы можете перейти на File->Project Structure->Modules
, Для вашего текущего модуля, нажмите на Dependencies
Вкладка. Нажмите на иконку, чтобы добавить JAR или библиотеку, найдите MySQL Connector/J
JAR.
Теперь ваша исполняющая JVM должна найти его, если вы запускаете его через IntelliJ.
"Не найден подходящий драйвер" означает, что JVM не может найти файл jar коннектора mysql. Какую версию Java-коннектора mysql вы используете? Если поместить его в classpath IntelliJ не работает, попробуйте сделать его зависимым от вашего проекта.
Предлагаю заменить
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception err){
System.out.println(err.getMessage());
}
с
Class.forName("com.mysql.jdbc.Driver")
1) newInstance() не имеет значения
2) если такого драйвера нет, пусть выдает исключение
Ваш код, кажется, работает нормально, проблема должна быть с разъемом. Какой разъем вы сейчас используете? Вы можете использовать J-коннектор и добавить JAR-файлы в путь сборки.