java.sql.SQLException:在结果集开始之前

时间:2014-09-16 22:39:45

标签: java mysql resultset

我在从MySql数据库中获取数据时遇到问题。我的代码如下:

        try {
        Connection con = datasource.getConnection();
        Statement stmt = con.createStatement();

        ResultSet rs;
        rs = stmt.executeQuery("SELECT tittle,date,path " +
                "FROM announcement "+
                "ORDER BY date");
        String tittle=rs.getString("tittle");
        String date=rs.getString("date");
        String text=rs.getString("path");


     if (!rs.isBeforeFirst())
     {
        out.println("<p>No data !</p>");
    }
     else
     {            
        out.println("<table class=\"data\">");
        out.println("<tr ><td class=\"sectionheader\"> tittleς</td><td            class=\"sectionheader\">date</td><td class=\"sectionheader\">text</td></tr>");

        while (rs.next()) {
            String row="";
            row  += "<td><a href=\"\"> "+tittle+ "</td>";
            row  += "<td>" + date + "</td>";
            row +="<td>"+text+"</td>";

            row +="</tr>";
            out.println(row);

        }

我得到的错误是"java.sql.SQLException: Before start of result set" 我做错了什么小费?

提前谢谢。

1 个答案:

答案 0 :(得分:8)

您可以通过游标访问ResultSet对象中的数据。最初光标指向第一行之前。

while(rs.next()) {
      String tittle=rs.getString("tittle");
      ....

}

更多信息,您的查询可能会返回多行,在这种情况下,您可能希望将结果存储在集合List<Map<String, String>>中,其中列表中的每个条目代表查询结果中的一行并且地图保存列名称与列值。