如何将ResultSet转换为Object []并检索数据

时间:2011-03-05 10:15:43

标签: java jdbc

我有List<object[]> records=null;

我正在检索一些数据并将其存储到ResultSet

现在,如何将ResultSet转换为此Object[]并返回记录(检索到的值)。

2 个答案:

答案 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 []的数组。