为什么找不到列在Java中运行时抛出SQL异常

时间:2018-06-04 21:49:15

标签: java jsp servlets

我尝试执行此操作:

<%String getComments = "select * from comments_tb where car_id = "
                                + request.getParameter("id") + "\" order by time_stamp DESC";
                        KarimDatabase karim2 = new KarimDatabase();
                        Statement stm2 = karim2.getCon().createStatement();
                        ResultSet rs2 = stm2.executeQuery(query);
                        while (rs2.next()) {
                            out.println("<p>" + rs2.getString("comment_desc") + "</p>");
                            out.println("<p>" + rs2.getString("time_stamp") + "</p>");

                        }
                        karim2.getCon().close();

                    %>

但是我从tomcat服务器日志中得到了这个结果:

java.sql.SQLException: Column 'comment_desc' not found.
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)...

请注意我已经通过数据库表进行了检查,而comment_desc是一列。实际上我尝试了另一列的输出字符串,我得到了一个结果。

1 个答案:

答案 0 :(得分:0)

如果您只需要这两列,您可以执行以下操作:

<%String getComments = "select comment_desc,time_stamp from comments_tb where car_id = "
                                + request.getParameter("id") + "\" order by time_stamp DESC";
                        KarimDatabase karim2 = new KarimDatabase();
                        Statement stm2 = karim2.getCon().createStatement();
                        ResultSet rs2 = stm2.executeQuery(query);
                        while (rs2.next()) {
                            out.println("<p>" + rs2.getString(1) + "</p>"); //get first column result
                            out.println("<p>" + rs2.getString(2) + "</p>"); //2nd

                        }
                        karim2.getCon().close();

                    %>

试试看是否有效。关于你的错误,除非列不存在或者因为它不是字符串,否则为什么你会得到它并没有多大意义?