MYSQL Не найдено подходящего драйвера - PullRequest
0 голосов
/ 10 ноября 2018

В настоящее время я использую Intellij, получается, что я пытаюсь подключиться к базе данных MySQL, но после добавления библиотеки и использования класса подключения, который отлично работает с драйвером MariaDB, я нахожу ошибку в заголовке вопроса

public void conectar() {
        try {
            conexion = DriverManager.getConnection(url, usuario, contraseña);
            if (conexion != null) { JOptionPane.showMessageDialog(null, "Conexión establecida a : \n" + url,  "ACDA2", JOptionPane.INFORMATION_MESSAGE);
                Class.forName("com.mysql.jdbc.Driver");
                stm = conexion.createStatement();//crea un objeto que permite enviar instrucciones a la base de datos
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Conexión fallida a : \n " + url, "", JOptionPane.ERROR_MESSAGE);
            System.out.println(ex.getMessage());
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, "Error al cargar el driver", "", JOptionPane.ERROR_MESSAGE);
            System.out.println(e.getMessage());
        }
    }

введите описание изображения здесь

введите описание изображения здесь

Это значения, которые я отправляю на соединение с классом

c= new conexion("jdbc:mysql://", "127.0.0.1/", "root", "", "sanciones"); c.conectar();

А затем я подробно опишу конструктор класса соединения

 public conexion(String driver,String host, String usuario, String 
 contraseña, String baseDatos) {
    this.usuario = usuario;
    this.contraseña = contraseña;
    this.baseDatos = baseDatos;
    this.driver = driver;
    this.host = host;
    this.url = driver + this.host  + this.baseDatos;
}

ОБНОВЛЕНИЕ

Версии драйвера com.mysql.jdbc_5.1.5 не допускают неявную загрузку драйвера из-за отсутствия подпапки Services в META-INF и его соответствующего содержимого, даже если это JDBC4 и в руководствах по mysql. Говорят, что это возможно, это не так, по крайней мере, с этой конкретной версии, приветствия

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Сначала необходимо вызвать «Class.forName», чтобы сначала загрузить нужный драйвер. Попробуйте,

    try {
        Class.forName("com.mysql.jdbc.Driver");
        conexion = DriverManager.getConnection(url, usuario, contraseña);
        if (conexion != null) { JOptionPane.showMessageDialog(null, "Conexión establecida a : \n" + url,  "ACDA2", JOptionPane.INFORMATION_MESSAGE);
            stm = conexion.createStatement();//crea un objeto que permite enviar instrucciones a la base de datos
        }
0 голосов
/ 10 ноября 2018

Class.forName должен быть вызван до получения соединения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...