2014-04-30 78 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

相关问题