我有List<object[]> records=null;
我正在检索一些数据并将其存储到ResultSet
。
现在,如何将ResultSet
转换为此Object[]
并返回记录(检索到的值)。
答案 0 :(得分:7)
无论出于什么奇怪的原因,你都需要这个。方法如下:
List<object[]> records=new ArrayList<object[]>();
while(resultSet.next()){
int cols = resultSet.getMetaData().getColumnCount();
Object[] arr = new Object[cols];
for(int i=0; i<cols; i++){
arr[i] = resultSet.getObject(i+1);
}
records.add(arr);
}
我的2美分:
理想情况下,您将拥有一个将Table列映射到Java对象字段的正确对象。您将把属性设置为POJO或Value Object(VO)并返回对象列表,而不是使用对象数组。这更简单,更有意义。如果必须存在于Object array列表中,您可能需要重新访问您的设计!
答案 1 :(得分:-1)
// better add performance
List<object[]> records=new LinkedList<object[]>();
// call only once
int cols = resultSet.getMetaData().getColumnCount();
while(resultSet.next()){
Object[] arr = new Object[cols];
for(int i=0; i<cols; i++){
arr[i] = resultSet.getObject(i+1);
}
records.add(arr);
}
最后,您可以从Collections类调用toArray方法来获取Object []的数组。