Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > MySQL и Java


Автор: nucer 28.6.2004, 15:18
Как сделать (или он уже есть) аналого пхп'шного mysql_fetch_assoc. Чтоб например получить результат запроса "SELECT * FROM users" в виде хэштаблицы с массивами (или LinkedList'ами) в качестве элементов? Хотя бы как определить сколько колонок (именно колонок, а не рядов) в результате селекта?

Автор: Грасоff 28.6.2004, 15:26
Код
ResultSet rs = ...;
ResultSetMetaData rsmd = rs.getMetaData();
// число полей
int columCount = rsmd.getColumnCount();
// и их имена
for (int i = 0; i < columnCount; i++) {
 String columnName = rsmd.getColumnName(i);
 ...
}

Автор: Domestic Cat 28.6.2004, 15:27
Результат запроса будет обьект класса ResultSet. Делать с ним можно много чего, так что я не пожму зачем результат нужен именно в виде массивов итп. Можно перегнать ResultSet в массивy cherez getArray(int i). Лучshе же посмотреть документацию:
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html

Получить количество столбцов можно так:

Код

...
ResultSet rs = statement.executeQuery("SELECT * FROM users");
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
...

Автор: Грасоff 28.6.2004, 15:50
Цитата(Domestic @ 28.6.2004, 15:27)
Код

...
ResultSet rs = statement.executeQuery("SELECT * FROM users");
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
...

как все-таки одинакого программисты называют переменные smile.gif

Автор: nucer 28.6.2004, 17:09
Спасибо, ResultMetaData я и не заметил, буду разбираться

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)