0

我在 Windows XP 中有 Netbean IDE 7.3.1 和数据库 MariaDB。但没有连接......这个类代码ConexionDB.java:

import java.sql.Connection;
import java.sql.DriverManager;
import javax.naming.NamingException;

public class ConexionDB {
    private String enlace;
    private String controlador;
    private String error;
    private String usuario;
    private String contrasenia;

    public ConexionDB(){
        this.enlace = "jdbc:mariadb://localhost:3306/test";
        this.controlador = "org.mariadb.jdbc.Driver";
        this.error = " ";
        this.usuario = "root";
        this.contrasenia = "mariadb";
    }

    public Connection abrirConexion() throws NamingException{
        try{
            Class.forName(getEnlace()).newInstance();
            return DriverManager.getConnection(getEnlace(), getUsuario(), getContrasenia());
        }catch (Exception e){
            setError(e.getMessage());
            System.out.println("error al conectar " + getError());
        }
        return null;
    }

    public void cerrarConexion(Connection salida){
        try{
            salida.close();
        }catch(Exception e){
            setError(e.getMessage());
            System.out.println("error al conectar " + getError());
        }

    }

而这段代码 Main.Java

import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.NamingException;
import javax.swing.JOptionPane;

public class Main {
    public static void main(String[] args) throws NamingException, SQLException{
        ConexionDB instanciaDB = new ConexionDB();
        Connection actualDB;
        actualDB = instanciaDB.abrirConexion();

        if(actualDB != null)
            JOptionPane.showMessageDialog(null, "Conexion Realiazada Correctamete!");
    }
}

我总是对输出有同样的错误:error al conectar jdbc:mariadb://localhost:3306/test [error to connect jdbc:mariadb://localhost:3306/test] 这个问题有什么想法!问候。

4

1 回答 1

0

我建议您应该尝试使用 DBVisualiser 等客户端以及相同的用户名和密码连接到 MariaDB。这确认数据库正在运行并打开连接并且凭据是正确的。一旦连接到数据库,请确保您测试数据库存在。如果您可以验证所有这些都正常,那么问题出在代码上。

我查看了您的代码,并对名为 getEnlace() 的方法感到困惑。我不知道它返回了什么?.

Class.forName(getEnlace()).newInstance();

不应该是这样吗

Class.forName(getControlador()).newInstance();

假设 getControlador 返回 jdbc 驱动程序类的名称。

于 2013-10-15T01:53:37.177 回答