Java 连接到 MySql 数据库,NullPointerException

标签 java mysql connector connector-j

我想用 Java 连接到 MySql 服务器(不安装额外的扩展),但出现“java.lang.NullPointerException”错误。 这是我的代码 主要:

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

和数据库连接:

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

有什么问题,我可以做些什么来解决这个问题?

最佳答案

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

关于Java 连接到 MySql 数据库,NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50778359/

相关文章:

java - 使用Kotlin在子类中强制执行静态方法编译?

mysql - 与 phpmyadmin 相比,$wpdb->get_results 查询返回不同(错误)的结果

codeigniter - 过滤名称中以点开头的文件(正则表达式、elfinder + codeigniter)

javascript - 在javascript中点击两次鼠标绘制连接器

java - 如果字段名称不同,如何将 POJO 映射到 DTO

Java:如果存在可选值,则添加到 Guava ImmutableList

java - 将 GUI 添加到现有的基于 Java 控制台的程序

php - 出生日期仅按升序排列的月份和日期

MySQL 复制 : Row based?

c# - 需要使用 .Net C# 连接到 Salesforce CRM