Обработка записей MySQL в Java - PullRequest
0 голосов
/ 24 апреля 2011

У меня есть таблица с оценками, которые участники получают после завершения теста.Затем я выбираю max(points) для каждого пользователя и я группирую по пользователю

select distinct userName, max(points) as numpoints
from tblscore
group by userName 
order by numpoints desc

, что дает мне порядок всех наивысших баллов для пользователя.я хочу хранить эти записи в массиве и обрабатывать их, я хочу ранжировать каждую запись, плюс я хочу отображать записи, где у пользователей есть связь.Как этого достичь?как массив будет настроен и обработан, чтобы обслужить это.

1 Ответ

1 голос
/ 25 апреля 2011
  1. Создать класс (например, UserScore) с двумя полями - username и points
  2. Получите ResultSet для нужного запроса (через Statement)
  3. Определить List<UserScore> list = new ArrayList<UserScore>
  4. Зацикливание набора результатов с помощью while (rs.next()) и на каждой итерации создайте новый экземпляр класса UserScore, задайте оба его поля (например, userScore.setPoints(rs.getInt("numpoints")), а затем добавьте объект в list
  5. Если вы можете сделать с List - иди с ним. Если вам действительно нужен массив - используйте list.toArray(..)

В качестве альтернативы вы можете использовать apache commons-dbutils , и после создания класса UserScore вы просто вызываете:

List<UserScore> list = new BeanListHandler(UserScore.class).handle(resultSet);

Обратите внимание, что в этом случае ваши поля должны вызываться так же, как и имена / псевдонимы возвращаемых столбцов. Вы также можете использовать ArrayListHandler, который вместо списка определенного класса даст вам List<Object[]>, где каждый столбец будет элементом в массиве.

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