Liczba kolumn w zestawie wyników, które można uzyskać za pomocą kodu (ponieważ DB jest używany jako PostgreSQL):
// załaduj sterownik dla PostgreSQL
Class.forName ("org.postgresql.Driver");
String url = "jdbc: postgresql: // localhost / test";
Właściwości props = new Properties ();
props.setProperty ("użytkownik", "mydbuser");
props.setProperty ("hasło", "mydbpass");
Connection conn = DriverManager.getConnection (url, props);
// tworzenie instrukcji
Instrukcja stat = conn.createStatement ();
// uzyskaj zestaw wyników
ResultSet rs = stat.executeQuery ("SELECT c1, c2, c3, c4, c5 FROM MY_TABLE");
// ze zbioru wyników podaj metadane
ResultSetMetaData rsmd = rs.getMetaData ();
// liczba kolumn z obiektu metadanych
int numOfCols = rsmd.getColumnCount ();
Ale możesz uzyskać więcej metainformacji o kolumnach:
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
I przynajmniej, ale nie mniej ważne, możesz uzyskać informacje nie tylko o tabeli, ale także o DB, jak to zrobić, możesz znaleźć tutaj i tutaj .
ResultSetMetaData
implementacja obsługują rekordy CSV o zmiennej długości. np. jeśli określiłeśSELECT * FROM sample
i każdy wiersz zawierał inną liczbę pól, czy liczba kolumn zostanie ponownie obliczona dla każdego wiersza, który został poddany iteracji?