我目前使用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;
}
升级
由于缺少META-INF中的Services子文件夹及其相应的内容,驱动程序版本com.mysql.jdbc_5.1.5不允许隐式加载驱动程序,即使它是JDBC4,并且在mysql手册中也是如此有可能,至少在这个具体版本中,它不是问候语
在获得连接之前应该调用Class.forName
需要首先调用“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
}