2013-11-28 46 views
0

我創建了一個從數據庫中獲取數據並添加到列表中的java類,並且方法dbd()返回List。如何從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()); 
    }   

%>  

****我需要存儲的每個字段數據要回單串LIKE名_ID,地址,形象店..我該怎麼辦?

+0

請格式化您的代碼 – david99world

+3

並且請不要對我們留言。我們不是DEAF。 –

+0

@sᴜʀᴇsʜᴀᴛᴛᴀ有幫助嗎? – arunangaj

回答

1

Java List提供了一個有序的集合。你做了什麼:你已經根據索引順序向你的集合添加了一些字符串。即每個添加到列表的新字符串都會有下一個索引。這意味着,如果數據庫中有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,我會preffer這個數據在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"); 
    } 
相關問題