Количество столбцов в результирующем наборе, которое вы можете получить с помощью кода (в качестве БД используется PostgreSQL):
// загружаем драйвер для PostgreSQL
Class.forName ("org.postgresql.Driver");
Строка url = "jdbc: postgresql: // localhost / test";
Свойства props = новые свойства ();
props.setProperty («пользователь», «mydbuser»);
props.setProperty («пароль», «mydbpass»);
Подключение соединения = DriverManager.getConnection (url, props);
// создаем инструкцию
Заявление stat = conn.createStatement ();
// получаем набор результатов
ResultSet rs = stat.executeQuery ("ВЫБРАТЬ c1, c2, c3, c4, c5 ИЗ MY_TABLE");
// из набора результатов выдаем метаданные
ResultSetMetaData rsmd = rs.getMetaData ();
// количество столбцов от объекта метаданных
int numOfCols = rsmd.getColumnCount ();
Но вы можете получить больше метаинформации о столбцах:
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
И, по крайней мере, но не в последнюю очередь, вы можете получить некоторую информацию не только о таблице, но и о БД, как это сделать, вы можете найти здесь и здесь .
ResultSetMetaData
реализация обрабатывают записи CSV переменной длины. например, если вы указали,SELECT * FROM sample
и каждая строка содержала разное количество полей, будет ли пересчитываться счетчик столбцов для каждой строки, которая была повторена?