无法调用“java.sql.Connection.createStatement()”,因为“con”为空

时间:2021-04-13 12:33:28

标签: java servlets jdbc

首先,这不是重复的,因为我见过我发现的所有类似问题

所以我在做的是在 Maven 项目中连接数据库

 i have 2 concerns -

构建给出以下错误

SEVERE: Servlet.service() for servlet [webapp.login.loginServlet] in context with path [] threw exception
java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "con" is null
    at webapp.login.loginServlet.doGet(loginServlet.java:46)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
    at java.base/java.lang.Thread.run(Thread.java:832)

我使我的连接为空,然后将其初始化...尝试捕获

request.getRequestDispatcher("/WEB-INF/veiws/login.jsp").forward(request, response);
            // connect
            
                    Connection con = null;
                    try {
                        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/to_be_done","root","");
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
if i remove null compile error here

try {
                        st = con.createStatement();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
}   
<块引用>

“con”未初始化

如果我把它留空并忽略我得到的错误

<块引用>

HTTP 状态 500 - 无法调用“java.sql.Connection.createStatement()”,因为“con”为空

0 个答案:

没有答案