Java-соединение с базой данных MySql, NullPointerException

Я хочу подключиться к серверу MySql с помощью Java(без установки дополнительного расширения), и я получаю сообщение об ошибке "java.lang.NullPointerException". Вот мои коды Main:

package sqlconnect;
public class SQLcONNECT {
public static void main(String[] args) {
    DBConnect connect = new DBConnect();
    connect.getData();
    }    
}

и DBConnect:

package sqlconnect;
//https://dev.mysql.com/downloads/connector/j/
 import java.sql.*;

public class DBConnect {
private Connection  con; 
private Statement  st;
private  ResultSet  rs; 
String Query = "SELECT * FROM uczniowie;" ; 
public void DBConnect() 
{
    try{
        Class.forName("com.mysql.jdbc.Driver") ; 
        con = DriverManager.getConnection("jdbc:mysql://serwer:port/BaseName","login","passwd"); 
    }catch(Exception ex){
        System.err.println(ex);
    }
}

public void getData()  
{
    try
    {
        st = con.createStatement();
        rs = st.executeQuery(Query);
        System.out.println("Rows from Table:");
        while(rs.next())
        {               
            String Uczen = rs.getString("Uczen"); 
            String CzyZda = rs.getString("CzyZda");
            String Ocena = rs.getString("Ocena");
            System.out.println("Uczen: " + Uczen +"  "+ "CzyZda: "+ CzyZda+"Ocena: "+Ocena);   
        }
    }
    catch(Exception  ex)
    {
        System.err.println(ex);
    }
} }

В чем может быть проблема, и что я могу сделать, чтобы решить это?

1 ответ

public void DBConnect() 

Это не конструктор: это обычный метод. Это никогда не вызывается, потому что вы не вызываете это явно.

Удалить void,


Кроме того, не поймать Exception, Просто добавь throws Exception (или, надеюсь, более конкретное исключение) для сигнатуры метода. В противном случае вы можете получить недопустимый, непригодный экземпляр класса.

public DBConnect() throws Exception 
{
    Class.forName("com.mysql.jdbc.Driver") ; 
    con = DriverManager.getConnection("jdbc:mysql://serwer:port/BaseName","login","passwd"); 
}
Другие вопросы по тегам