Макс. Колонка результатов Java? - PullRequest
2 голосов
/ 23 января 2012

Я довольно новичок в Java, и мне было интересно, как я могу получить все столбцы возвращаемых через MySQL запрос. Например,

SELECT * FROM `login`

А потом у меня был этот код, чтобы вернуть результаты:

        while (rs.next()) {
            for (byte i = 1; i < 10; i++) {
                result = result+" "+rs.getString(i);
            }
        }

Я хочу, чтобы 10 в цикле for было максимальным числом столбцов из-за динамических запросов MySQL. Есть ли простой способ сделать это? Спасибо.

Ответы [ 3 ]

3 голосов
/ 23 января 2012

Хотя, как предположил Даффимо, лучше указать столбцы, которые вы хотите получить в запросе, вы можете использовать метаданные ResultSet для получения количества возвращаемых столбцов:

 ResultSetMetaData rsmd = rs.getMetaData();
 int numberOfColumns =rsmd.getColumnCount();

 while (rs.next()) {
      for (byte i = 1; i <= numberOfColumns; i++) {
           result = result+" "+rs.getString(i);
      }
 }
1 голос
/ 23 января 2012

Да, вы ограничите возвращаемые поля. Это проблема SQL, а не проблема Java. Измените ваш запрос на что-то вроде этого:

select this, that, theothercolumn from mytable;

Затем вы можете использовать это для динамического ограничения:

rs.getMetaData().getColumnCount()
0 голосов
/ 23 января 2012

Я бы рекомендовал не использовать SELECT *.Если вы знаете столбцы, которые вы хотите, укажите их.Это сделает ваш код более устойчивым к изменениям столбцов и уменьшит количество байтов в сети.

...