не найден подходящий драйвер, вызывающий getConnection

#java #mysql #jdbc #database-connection #driver

#java #mysql #jdbc #подключение к базе данных #драйвер

Вопрос:

Я использую MySQL 5.5 с его настройками по умолчанию. Я создал пользователя / пароль и запустил скрипт, создающий базу данных под названием employees. Через командную строку я могу получить доступ к базе данных:

 mysql -u user -p
SELECT * FROM employees
  

В моем Java-приложении я не могу подключиться. Я пробовал эти URL-адреса, а также другие, но ничего не работает:

 "jdbc:mysql://localhost/employees" "user" "password"
"jdbc:mysql://localhost:3306/employees" "user" "password"
"jdbc:mysql:///employees?user=useramp;password=password"
  

Вот соответствующий код:

 public Main()
{
    try {
        connection = DriverManager.getConnection(url);
        //connection = DriverManager.getConnection(url, user, password);
        // I don't know what else to try
    } catch (SQLException ex) {
        System.out.print(ex   "nn");
    }
}
  

Комментарии:

1. Вы загрузили драйвер JDBC? Вы ничего не упомянули о его получении. mysql.com/downloads/connector/j

2. Если он говорит, что не найден подходящий драйвер, значит, вашего драйвера jdbc нет, есть путь к классу. Если вы запускаете это на сервере приложений, то вам может потребоваться добавить драйвер в ваш каталог lib.

3. спасибо, это решило мою проблему! Я скачал его раньше, но, похоже, он устарел, поэтому я не стал его пробовать.

Ответ №1:

Убедитесь, что у вас есть Jar-файл драйвера Mysql в пути к классу, и проверьте документацию MySQL: http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-basic.html

Ответ №2:

Ошибка сообщает мне, что либо

  • Драйвер ConnectorJ отсутствует в вашем пути к классам.
    или
  • При использовании DriverManager системное свойство jdbc.drivers не было заполнено местоположением драйвера Connector / J.
    или
  • Формат вашего URL-адреса подключения неверен, или вы ссылаетесь на неправильный драйвер JDBC. В вашем сценарии причиной проблемы, с которой вы столкнулись, является элемент списка # 1.

Я бы использовал что-то вроде приведенного ниже фрагмента кода для получения объекта connection.

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

Connection conn = null;
...
try {
conn =
   DriverManager.getConnection("jdbc:mysql://localhost/employees?"  
                               "user=useramp;password=password");

 // Do something with the Connection

 ...
 } catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: "   ex.getMessage());
System.out.println("SQLState: "   ex.getSQLState());
System.out.println("VendorError: "   ex.getErrorCode());
}