exceptionorg.postgresql.util.PSQLException:错误:“或”附近的语法错误,位置:70

时间:2017-07-10 15:58:14

标签: java sql postgresql

我尝试运行以下查询但显示语法错误。我在完整查询中检查了“,”错误但找不到它。任何人都可以解释错误在哪里?

@WebServlet("/gisBack")
public class GisBack extends HttpServlet{
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter writer = response.getWriter();
        String fromx = request.getParameter("fromx");
        String fromy = request.getParameter("fromy");
        String destx = request.getParameter("destinationx");
        String desty = request.getParameter("destinationy");
        String x = request.getParameter("x");
        String y = request.getParameter("y");
        //writer.println("Welome to servlet ");
        Connection conn = null;
        StringBuilder buf = new StringBuilder();
        try{
            Class.forName("org.postgresql.Driver");
            String dburl = "jdbc:postgresql://localhost:5433/postgres";
            conn = DriverManager.getConnection(dburl, "postgres", "sid");
            Statement stat = conn.createStatement();
            //System.out.println("connection-----"+conn);
            //String query = "select * from pgr_fromAtoB('texas_roads_gcs', "+fromx+", "+fromy+", "+destx+","+desty+")"; 
            String query1 = "drop table if exists route9";
            stat.executeUpdate(query1);
            String query2 = "create table route9 as select * from pgr_fromAtoB('texas_roads_gcs', "+fromx+", "+fromy+", "+destx+","+desty+")"; 
            stat.executeUpdate(query2);
            String query = "select seq,gid,name,cost,heading from route9";
            //System.out.println(query+"=query pgr from atob");
            //ResultSet rs1 = stat.executeQuery(query1);
            ResultSet rs = stat.executeQuery(query);

            ResultSetMetaData rsmd = rs.getMetaData();
            int col = rsmd.getColumnCount();
            buf.append("<html>"+"<body>"+"<table border=2   >"+"<tr>");
            for (int i = 1; i < col; i++) {
                //writer.println("column MetaData ");
                // get the column's name.
                buf.append("<th>"+rsmd.getColumnName(i)+"</th>");
                //writer.println("&emsp;&emsp;");

            }
            buf.append("</tr>");
            writer.println("<br/>");
            while(rs.next()){
                buf.append("<tr>");
                for(int i=1;i<col;i++){
                    buf.append("<td>"+rs.getString(i)+"</td>"+"&emsp;");
                    //writer.println(rs.getString(i));
                    //writer.println("&ensp;&ensp;&ensp;");
                    //System.out.println(rs.getString(i)+"=value");
                }
                buf.append("</tr>");
                //writer.println("<br/>");
            }
            buf.append("</table>" +
                    "</body>" +
                    "</html>");
            String html = buf.toString();
            writer.println(html);
            String query4 = "select sum(cost) from route9";
            ResultSet tot = stat.executeQuery(query4);
            tot.next();
            String sum = tot.getString(1);
            double sum1 = Double.parseDouble(sum);
            writer.println("<br/>");
            writer.println("<br/>");
            writer.println("Total cost is "+ sum1);

            String blockQuery1 = "update texas_roads_gcs set length=length*1000 where gid=(select gid from (select gid,length,ST_DWithin(ST_GeomFromText(POINT("+x+" "+y+")),geom,0.05) from texas_roads_gcs where ST_DWithin(ST_GeomFromText(POINT("+x+" "+y+")),geom,0.05)='t')as s)";
            stat.execute(blockQuery1);

            rs.close();
            stat.close();
            conn.close();
        }
        catch(SQLException e){
            System.out.println("exception"+e);

        }catch(ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(conn!=null){
                try{
                    conn.close();
                }
                catch(Exception e){ 
                }
            }
        }       
    }
}

0 个答案:

没有答案