2013-10-15 94 views
0

我有Windows XP中的DataBase MariaDB的Netbean IDE 7.3.1。 但沒有連接......這 類代碼ConexionDB.java:如何將java與mariadb連接到windows?

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!"); 
    } 
} 

總是我已經在輸出相同的錯誤: 錯誤人conectar JDBC :mariadb:// localhost:3306/test [error to connect jdbc:mariadb:// localhost:3306/test] 在這個問題中的任何想法! Grettings。

回答

0

我建議你應該嘗試使用DBVisualiser等一些客戶端和相同的用戶名和密碼連接到MariaDB。這證實了數據庫正在運行並打開連接並且憑據是正確的。一旦連接到數據庫,請確保您的測試數據庫存在。如果您可以驗證所有這些都可以,那麼問題出在代碼上。

我看着你的代碼,並與名爲getEnlace()的方法混淆。我不知道它返回的是什麼? 。

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

should't它像

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

假設getControlador返回jdbc驅動程序類的名稱。