Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.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 org.postgresql.util.psqleexception:ResultSet未正确定位,可能需要调用next_Java_Psql - Fatal编程技术网

Java org.postgresql.util.psqleexception:ResultSet未正确定位,可能需要调用next

Java org.postgresql.util.psqleexception:ResultSet未正确定位,可能需要调用next,java,psql,Java,Psql,这是我的代码,我得到了这个错误 String id = request.getParameter("id"); try { Class.forName("org.postgresql.Driver"); Connection con = DriverManager.getConnection("jdbc:postgresql://172.10.10.3:5432/stepup380qty","stepup380qty","stepup38

这是我的代码,我得到了这个错误

String id = request.getParameter("id");

    try {
            Class.forName("org.postgresql.Driver");
            Connection con = DriverManager.getConnection("jdbc:postgresql://172.10.10.3:5432/stepup380qty","stepup380qty","stepup380qty");
            String query = "select binarydata from ad_image where ad_image_id =" + id;
            Statement stm = con.createStatement();
            ResultSet rs = stm.executeQuery(query);
            rs.next();
            String img = rs.getString("binarydata");
            byte[] img2 = new byte[img.length()];
            InputStream imgstream = rs.getBinaryStream("binarydata");
            int index = imgstream.read(img2, 0, img.length());
            stm.close();
            response.reset();
            response.setContentType("image/jpg");
            response.getOutputStream().write(img2,0,img2.length);
            response.getOutputStream().flush();
            imgstream.close();
    }
    catch (SQLException e) { 
        e.printStackTrace(); 
        }
    catch (Exception e) { 
        e.printStackTrace(); 
        }
}

根据javadocs for
next
当对next方法的调用返回false时,光标位于最后一行之后。任何需要当前行的ResultSet方法调用都将导致SQLException被抛出。您应该检查
next
的返回结果,以确定是否有可以使用的结果。我没有找到解决这个问题的办法。。。我加了rs.close();但它仍然显示出同样的错误
org.postgresql.util.PSQLException: ResultSet not positioned properly, perhaps you need to call next.
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkResultSet(AbstractJdbc2ResultSet.java:2881)
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getString(AbstractJdbc2ResultSet.java:1956)
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getString(AbstractJdbc2ResultSet.java:2568)
    at ireportImage.IreportIMAGE.doGet(IreportIMAGE.java:48)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)