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