我有一个对象列表(来自select查询的结果),我想将它转换为数组,我想将查询的每一列放在数组的一列中。我在论坛上尝试了很多解决方案,但我还没有找到解决方案。
在我的bean中,我有以下列表:
private List<PhBonCmd> listEntree; // The PhBonCmd is an object model imported has attributes like codeprod , quant ,...
.....
String sql ="select c.codeprod as codeprod , c.quant as quant ,c.date_cmd as date_cmd, c.date_expir as date_expir,c.numbco as numbco, c.auteur as auteur,"
+"c.idcmd as idcmd ,f.nomfourn as nomfourn ,coalesce(c.quant_livre, 0) as quant_livre ,m.libelle as libelle "
+"from commandes c,listeproduit m,fournisseur f "
+"where c.codeprod=m.codeproduit and c.fourn=f.idfourn and c.statut='IN' and c.numbco ='"+getNumbco()+"' ";
listEntree = (List<PhBonCmd>) this.bcService.execRequete(sql);//Here the results of the sql query
现在我想要的是将List(listEntree
)的每一列放在一个多维arraylist中,所以就好像我想访问arraylist中的特定单个值一样,我这样做。
答案 0 :(得分:0)
你为什么要投身List<PhBonCmd>
? 。默认情况下,ResultSet是多维的。如果要转换为多维List,可以通过处理ResultSet来完成。
如果您使用的是Spring,则可以使用RowMapper或ResultSetExtractor来获得所需的行为。
答案 1 :(得分:0)
我想将查询的结果放在一个数组中,从那里,我想访问数组的元素。有像这样的数组[row] [col]
答案 2 :(得分:0)
当你有OOP能力时,我不知道这样做的原因,但现在就是这样。
您必须使用reflection来了解PhBonCmd
的已知字段(如果您愿意,可以说是列):
Class clazz = PhBonCmd.class;
Field[] fields = clazz.getFields();
String[][] myDemensionalArray = new String[fields.length()][listEntree.size()];
for(int i=0; i < fields.length(); i++){
for(int j=0; j < listEntree.size(); j++){
myDemensionalArray[i][j] = fields[i].get(listEntree.get(j));
}
}