使用rs.next()获取所有数组元素

时间:2016-05-06 05:24:20

标签: java sql arrays database iterator

我在从数据库中获取数据时遇到问题。 我正在尝试获取数组列表。

但我的问题是我只能获取数组的最后一个元素,因为它会覆盖前一个元素。

这是我的代码。

{
    "query": {
        "bool": {
            "must": [
                {"term": { "AREA" : "Mumbai" }},  
                {"term": { "AREA" : "Chennai" }}
            ]
        }
    }
}

在我的sysout中,我可以检索所有数据。但在我的页面上只检索到最后一个元素。这是我的道教课程。

                 String sql;
                 sql = "select * from NM_PROPERTIES_LOADER";
                 ResultSet rs = stmt.executeQuery(sql);
                 String prop_name = null;
                 String prop_value = null;
                 PropertyData reader = new PropertyData();

                 while(rs.next()){
                     prop_name = rs.getString("prop_name");
                     prop_value = rs.getString("prop_value");
                     reader.setPropName(prop_name);
                     reader.setPropValue(prop_value);
                     ..//other setter..  


                     System.out.println(prop_name + " " + prop_value);
                 }
                 prop.add(reader);

1 个答案:

答案 0 :(得分:1)

在循环的每次迭代中,您都会覆盖reader的内容。 你想在循环中创建reader,而不是在外面, 并且在循环内部进行prop.add(reader),而不是在外部。

像这样:

 String sql = "select * from NM_PROPERTIES_LOADER";
 ResultSet rs = stmt.executeQuery(sql);

 while(rs.next()) {
     PropertyData reader = new PropertyData();
     String name = rs.getString("prop_name");
     String value = rs.getString("prop_value");
     reader.setPropName(name);
     reader.setPropValue(value);

     // other setter calls..  

     prop.add(reader);
 }