2015-02-02 4 views
0

Я пытаюсь подключиться к базе данных JDBC MySQL с использованием Java, но я получаю следующее сообщение об ошибке, когда я пытаюсь запустить свою программу: -Подключение к Databse JDBC MySQL

Нет подходящий драйвер найден для a9442ca6-992c-411b-8bda-a42f00a0ab2e.mysql.sequelizer.com

Я скачал следующий файл Jar и добавить его в мой проект:

mysql-connector-java5.1.34-bin.jar 

Я нахожусь не уверен, что мне нужно добавить какой-то оператор «import» в мои объявления maybes? Любая помощь приветствуется.

Мой код выглядит следующим образом: -

package dvddblibrary; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.sql.ResultSet; 
import javax.swing.JOptionPane; 
import java.util.Scanner; 

    public class DBConnect { 

     /** 
     * @param args the command line arguments 
     */ 
     public static void main(String[] args) 
     { 



      try 
      { 
       String host = "xxx"; 
       String uName = "xxx"; 
       String uPass = "xxx"; 

      Connection con = DriverManager.getConnection(host, uName, uPass); 

      } 
      catch (SQLException err) 
      { 
       System.out.println(err.getMessage()); 
      } 
     } 

    } 
+2

Пожалуйста, не могли бы вы помочь нам, разместив ваш текущий код. –

+0

Запустили ли вы программу в командной строке или в среде IDE, например Eclipse?Если вы используете его в командной строке, вы должны включить команду jar в команду для компиляции и выполнения. –

+0

Какую версию Java вы используете? –

ответ

0

Скачать файл из [http://dev.mysql.com/downloads/connector/j/]. Извлеките его, и вы найдете файл .jar внутри папки lib. Скопируйте этот файл в папку lib/вашего проекта.

Это может вызвать проблемы.

1

Вам необходимо сначала зарегистрировать драйвер, что является побочным эффектом загрузки класса. Попробуйте

Class.forName("com.mysql.jdbc.Driver"); 

MySQL даже сказать, что вам нужно сделать

Class.forName("com.mysql.jdbc.Driver").newInstance(); 

для некоторых «битых реализаций Java», но я никогда не находил, что это необходимо. См. .

+0

Если вы используете Java SE 7, это больше не нужно. –

+0

По крайней мере, когда это делается, и он создает класс ClassNotFoundException, мы знаем, что истинная причина в том, что jar не находится в пути к классам. –

+0

Но это не проблема ... Для меня больше похоже на то, что OP сделал неправильную копию/вставку кода и имеет неправильное имя класса в 'Class.forName'. –

1

Попробуйте это:

package dvddblibrary; 

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

public class DBConnect { 
    public static void main(String[] args) { 
     try { 
      String host = "xxx"; 
      String uName = "xxx"; 
      String uPass = "xxx"; 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con = DriverManager.getConnection(host, uName, uPass); 
     } catch (SQLException err) { 
      System.out.println(err.getMessage()); 
     } 
    } 
} 
+0

Этот код получит ошибку компиляции, поскольку блок try/catch не покрывает исключение ClassNotFoundException. –

0

Есть две проблемы в вашем коде;

1) Вы должны добавить это в верхней части блока try;

 // Add this 
     Class.forName("com.mysql.jdbc.Driver"); 

2) И строка подключения не является действительным, попробуйте действительную строку подключения в вашем хосте;

 String host = "jdbc:mysql://localhost/XXX"; 

Полный код, как показано ниже, (у меня нет базы данных MySQL, кстати, просто запустите это, чтобы получить сообщение об ошибке соединения, а не «» ошибка)

package dvddblibrary; 

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

public class DBConnect { 

    public static void main(String[] args) { 

     try { 
      // Add this 
      Class.forName("com.mysql.jdbc.Driver"); 

      //String host = "xxx"; // this is not valid, update with a valid connection string 
      String host = "jdbc:mysql://localhost/XXX"; 
      String uName = "xxx"; 
      String uPass = "xxx"; 

      Connection con = DriverManager.getConnection(host, uName, uPass); 

     } catch (SQLException err) { 
      System.out.println(err.getMessage()); 
     } catch (ClassNotFoundException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 

} 

И выход, как показано ниже , вместо получения вашего "Не найдено подходящего драйвера" Ошибка, я получаю ошибку подключения (потому что у меня нет базы данных mysql на localhost :));

Communications link failure 

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 

Если вы просто обновить код, насколько ваша база данных MySQL это и ваш хозяин действительно, этот код будет работать нормально.

Смежные вопросы