简体   繁体   English

org.postgresql.util.PSQLException:未为参数1指定值-Postgres

[英]org.postgresql.util.PSQLException: No value specified for parameter 1. - Postgres

I am trying to run a preparedStatement and am getting the following exception. 我正在尝试运行prepareStatement并收到以下异常。

org.postgresql.util.PSQLException: No value specified for parameter 1.
    at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:257)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:284)
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)
    at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:117)
    at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
    at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:82)
    at com.eventory.dao.ManagerDao.isExists(ManagerDao.java:62)
    at com.eventory.create.web.MSignUp.doPost(MSignUp.java:44)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Sep 10, 2017 8:15:20 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [com.eventory.create.web.MSignUp] in context with path [/eventory] threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:321)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
    at com.eventory.create.web.MSignUp.doPost(MSignUp.java:52)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1457)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

This is the method in ManagerDao that is causing the exception. 这是导致异常的ManagerDao中的方法。

public static boolean isExists(String managerID) {
        boolean st = false;

        // sql = "SELECT managerID FROM ManagerLogin";
        try {
            pstmt = currentCon.prepareStatement(GET_MANAGER_PASSWORD);

            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                String originalMID = rs.getString("managerID");
                if (originalMID.equals(managerID)) {
                    st = true;
                }
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return st;
    }

The preparedStatement are prepareStatement是

GET_MANAGER_PASSWORD = "SELECT pwd FROM ManagerLogin WHERE managerID=?";

This was working fine when I was using MS SQL server. 当我使用MS SQL Server时,这工作正常。 I have switched to Postgres. 我已切换到Postgres。 Is there anything wrong with the query? 查询有什么问题吗? Please help. 请帮忙。

You don't pass the parameter managerID anywhere in your query statement 您不会在查询语句中的任何地方传递参数managerID

Should be something like this: 应该是这样的:

pstmt = currentCon.prepareStatement(GET_MANAGER_PASSWORD);
pstmt.setString(1, managerID);
ResultSet rs = pstmt.executeQuery();
//Rest of your code

The rest of your code however does not make much sense as the comments of @RealSkeptic mention 但是,您其余的代码没有多大意义,因为@RealSkeptic提到了注释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.postgresql.util.PSQLException:未为参数11指定值 - org.postgresql.util.PSQLException: No value specified for parameter 11 org.postgresql.util.PSQLException:没有为参数1指定值 - org.postgresql.util.PSQLException: No value specified for parameter 1 org.postgresql.util.PSQLException:致命:数据库“ postgres>”不存在 - org.postgresql.util.PSQLException: FATAL: database “postgres>” does not exist org.postgresql.util.PSQLException:BigDecimal 类型的值错误:{1} 与 JPA - org.postgresql.util.PSQLException: Bad value for type BigDecimal : {1} with JPA ClassNotFoundException:org.postgresql.util.PSQLException - ClassNotFoundException: org.postgresql.util.PSQLException org.postgresql.util.PSQLException - 2019 - org.postgresql.util.PSQLException - 2019 Hibernate 和 Java 和 Postgres @Enumerated(value=EnumType.STRING) - 引起:org.postgresql.util.PSQLException:int 类型的错误值 - Hibernate and Java and Postgres @Enumerated(value=EnumType.STRING) - Caused by: org.postgresql.util.PSQLException: Bad value for type int 通过JDBC进行Postgres连接:org.postgresql.util.PSQLException:错误:关系“处方”不存在 - Postgres connectivity via JDBC: org.postgresql.util.PSQLException: ERROR: relation “prescriptions” does not exist 尝试以Java连接到PostgreSQL数据库时出现org.postgresql.util.PSQLException - org.postgresql.util.PSQLException when trying to connect to postgres db in Java 无法连接到 postgres Scala slick org.postgresql.util.PSQLException:连接尝试失败 - Can't connect to postgres Scala slick org.postgresql.util.PSQLException: The connection attempt failed
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM