2014-04-30 26 views
1

我使用的是JDBC查詢返回的輸出如下:如何創建可存儲在Java中的多個數據類型的對象ArrayList類

Name  Id 
A   1 
B   2 

然後我試圖根據查詢結果生成arrylist使用下面的Java類:

private class GetCompanyInfo implements Work { 
    ArrayList<CompanyRelatedInfo> companyRelatedDataList = new ArrayList<CompanyRelatedInfo>(); 
    private String queryString; 

    @Override 
    public void execute(Connection connection) throws SQLException {   
     PreparedStatement ps = connection.prepareStatement(queryString); 
     ResultSet rs = ps.executeQuery(); 
     CompanyRelatedInfo ci = new CompanyRelatedInfo();  
     while(rs.next()) 
     { 
      String name = rs.getString("name"); 
      Long id = rs.getLong("id"); 

      ci.setName(name); 
      ci.setId(id); 
      companyRelatedDataList.add(ci); 
     } 
     rs.close(); 
     ps.close(); 
    } 
} 

但問題是ArrayList中返回結果如下:

Name  Id 
B   2 
B   2 

我怎樣才能生成數組列表如下:

Name  Id 
A   1 
B   2 

回答

4

創建的,而不是使用相同CompanyRelatedInfo的新實例。您只需修改所有行的同一個對象,並將其多次放入列表中。因此,請嘗試使用以下內容:

while(rs.next()) { 
    CompanyRelatedInfo ci = new CompanyRelatedInfo();  
    ... 
+0

謝謝。我沒有注意到我把這個實例放在while循環之外。再次感謝。 :-) – Novis

相關問題