MYSQL找不到合适的驱动程序

时间:2018-11-10 13:12:57

标签: mysql mariadb

我当前使用的是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());
        }
    }

enter image description here

enter image description here

这些是我发送给类连接的值

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;
}

升级

由于META-INF及其相应内容中缺少Services子文件夹,因此驱动程序版本com.mysql.jdbc_5.1.5不允许隐式加载驱动程序,即使它是JDBC4,并且在mysql手册中也是如此据说有可能,至少在此特定版本中,问候语不可能

2 个答案:

答案 0 :(得分:0)

Class.forName应该在连接之前被调用

答案 1 :(得分:0)

首先需要调用“ 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
        }