Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个奇怪的NullPointerException错误,我问如何修复它?_Java_Sql_Jakarta Ee - Fatal编程技术网

Java 我有一个奇怪的NullPointerException错误,我问如何修复它?

Java 我有一个奇怪的NullPointerException错误,我问如何修复它?,java,sql,jakarta-ee,Java,Sql,Jakarta Ee,我是JEE的初学者,我试图从我的db中获取对象,但我遇到了一个nullpointerexception错误,我试图通过System.out.println()找到nullpointerexception的来源(我知道连接传递为null),但失败了,我忘了告诉您我有用于连接的singletonconnection类,我在函数中通过.getconnection()调用它。我还向项目构建路径添加了一个jdbc驱动程序(版本8.0.18)(我询问此错误是否是由于jdbc驱动程序版本所致), 如果有人能帮

我是JEE的初学者,我试图从我的db中获取对象,但我遇到了一个nullpointerexception错误,我试图通过System.out.println()找到nullpointerexception的来源(我知道连接传递为null),但失败了,我忘了告诉您我有用于连接的singletonconnection类,我在函数中通过.getconnection()调用它。我还向项目构建路径添加了一个jdbc驱动程序(版本8.0.18)(我询问此错误是否是由于jdbc驱动程序版本所致),
如果有人能帮忙,请提前感谢

这是一个连接到数据库的函数,它将我在第
PreparedStatement ps=connection.preparest陈述(“req”)

这是错误日志

HTTP状态500–内部服务器错误 类型异常报告

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.NullPointerException
    dao.ProduitDaoImpl.produitsParMC(ProduitDaoImpl.java:48)
    web.ControleurServelet.doGet(ControleurServelet.java:49)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.
这是我的单身连接

public class SingletonConnection {
    private static Connection connection;
    //le block static charge la classe en mémoire lors de son appel
    static{
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            try {
                connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/db-natal","root","");
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public static Connection getConnection() {
        return connection;
    }

错误表示空指针在Dao和控制器中

尝试在每个文件中的每个行号周围设置断点,以查看在调试模式下发生的情况

它应该能让你很好地了解出了什么问题


您是否将结果集数据设置为对象变量

是的,完全正确,,,似乎连接为空。请替换所有
e.printStackTrace()通过
抛出新的运行时异常(e)。这样,您的代码将更快地失败,原因更加明确。现在,您基本上忽略了所有这些
e.printStackTrace()
,只关注
NullPointerException
,这仅仅是其结果。
public class SingletonConnection {
    private static Connection connection;
    //le block static charge la classe en mémoire lors de son appel
    static{
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            try {
                connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/db-natal","root","");
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public static Connection getConnection() {
        return connection;
    }