Как преобразовать ResultSet в Object [] и получить данные - PullRequest
1 голос
/ 05 марта 2011

У меня есть List<object[]> records=null;

Я получаю некоторые данные и сохраняю их в ResultSet.

Теперь, как мне преобразовать ResultSet в это Object[] и вернуть записи (извлеченные значения).

Ответы [ 2 ]

8 голосов
/ 05 марта 2011

По каким-то странным причинам вам это нужно. Вот как:

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 цента:

В идеале у вас должен быть соответствующий объект, который сопоставляет столбцы таблицы с полями объекта Java. Вместо использования массива объектов, вы установите свойства POJO или Value Object (VO) и вернете список объектов. Это намного проще и имеет больше смысла. Возможно, вы захотите пересмотреть свой дизайн, если вам нужно жить в списке массивов объектов!

0 голосов
/ 05 марта 2011
// 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);
}

Наконец, вы можете вызвать метод toArray из класса Collections, чтобы получить массив Object [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...