如何将mariadb与java连接到windows?

时间:2013-10-15 01:18:37

标签: java mariadb

我在带有DataBase MariaDB的Windows XP中安装了Netbean IDE 7.3.1。 但没有联系...... 这个类代码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 [连接jdbc的错误:mariadb:// localhost:3306 / test] 在这个问题上有任何想法! 素不相识。

1 个答案:

答案 0 :(得分:0)

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

我查看了你的代码,并与名为getEnlace()的方法混淆了。我不知道它回来了什么? 。

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

不应该像

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

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