如何将每个字段数据存储在List中的字符串中?

时间:2013-11-28 09:36:01

标签: java sql sql-server jsp

我创建了一个java类,它从数据库中获取数据并添加到list.and methord dbd()返回List。

public class db {
  public List dbd() {
   List myList = new ArrayList();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql:*********,*******");
            Statement stmt2 = conn.createStatement();
            ResultSet rs2 = stmt2.executeQuery(" SELECT name_id,address,image from data where name="kiran";" )  ;
                 while(rs2.next())
                  {
                  myList.add(rs2.getString("name_id"));
                  myList.add(rs2.getString("address"));
                  myList.add(rs2.getString("image"));
                  }

        } catch (Exception ex) {
            System.out.println(ex);
        }

        return myList;
             }

    public static void main(String args[]){ 

     }

}

在这个jsp页面中我创建了db的对象作为nw。通过使用Iterator,我可以打印来自数据库的所有现场数据。

 <%
   db nw = new db();         
   Iterator it = nw.dbd().iterator();
   while (it.hasNext()) {
     out.println(it.next());
    }         

 %>      

**** 我需要存储每个字段数据以存储回姓名,地址,图片等个别字符串..什么我该怎么办?

1 个答案:

答案 0 :(得分:1)

Java List提供有序集合。你做了什么:你已经根据索引顺序为你的集合添加了多少个字符串。即添加到列表中的每个新String都将具有下一个索引。这意味着,如果数据库中有3列,则连续添加“name_id”,“address”和“image”的值。一种解决方案可能是:

            int ind = 0;
    while (it.hasNext()) {
        String name;
        String address;
        String image;
        if (ind % 3 == 0)
            name = it.next();
        else if (ind % 3 == 1)
            address = it.next();
        else if (ind % 3 == 2)
            image = it.next();
                    ind++;
    }

Personnaly,我希望以下列方式将这些数据存储在ArrayList中:

    ArrayList list = new ArrayList<JSONObject>();
    while(rs2.next()){
    JSONObject obj = new JSONObject().put("name_id", rs2.getString("name_id")).put("address", rs2.getString("address")).put("image", rs2.getString("image"));
    list.add(obj);
    }

在这种情况下,您将对JSON对象中的行进行分组,您可以检索如下数据:

    Iterator<JSONObject> it = list.iterator();
    while (it.hasNext()) {
        JSONObject obj = it.next();
        String name = obj.getString("name_id");
        String address = obj.getString("address");
        String image = obj.getString("image");
    }