Кількість стовпців у наборі результатів, які ви можете отримати за допомогою коду (як DB використовується PostgreSQL):
// завантажуємо драйвер для PostgreSQL
Class.forName ("org.postgresql.Driver");
URL-адреса рядка = "jdbc: postgresql: // localhost / test";
Властивості props = new Properties ();
props.setProperty ("користувач", "mydbuser");
props.setProperty ("пароль", "mydbpass");
Підключення conn = DriverManager.getConnection (url, реквізит);
// створити оператор
Виписка 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
і кожен рядок містив різну кількість полів, чи буде перерахована кількість стовпців для кожного рядка, який було повторено?