我正在使用 JDBC 查询返回如下输出:
Name Id
A 1
B 2
然后我尝试使用以下 java 类根据查询结果生成 arrylist:
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
最佳答案
创建 CompanyRelatedInfo 的新实例而不是使用它。您只是为所有行修改同一个对象并将其多次放入列表中。所以尝试使用以下内容:
while(rs.next()) {
CompanyRelatedInfo ci = new CompanyRelatedInfo();
...
关于java - java中如何创建可以存储多种数据类型对象的arraylist类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23395263/