Numero di colonne nel set di risultati che puoi ottenere con il codice (poiché DB viene utilizzato PostgreSQL):
// carica il driver per PostgreSQL
Class.forName ("org.postgresql.Driver");
Stringa url = "jdbc: postgresql: // localhost / test";
Proprietà props = new Properties ();
props.setProperty ("user", "mydbuser");
props.setProperty ("password", "mydbpass");
Connessione conn = DriverManager.getConnection (url, props);
// crea una dichiarazione
Istruzione stat = conn.createStatement ();
// ottiene un set di risultati
ResultSet rs = stat.executeQuery ("SELEZIONA c1, c2, c3, c4, c5 DA MY_TABLE");
// dal set di risultati fornisce i metadati
ResultSetMetaData rsmd = rs.getMetaData ();
// conteggio delle colonne dall'oggetto metadati
int numOfCols = rsmd.getColumnCount ();
Ma puoi ottenere più meta-informazioni sulle colonne:
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
E almeno ma non meno importante, puoi ottenere alcune informazioni non solo sulla tabella ma anche sul DB, come farlo puoi trovare qui e qui .
ResultSetMetaData
implementazione gestiscano i record CSV di lunghezza variabile. Ad esempio, se si specificavaSELECT * FROM sample
e ogni riga conteneva un numero diverso di campi, il conteggio delle colonne verrebbe rivalutato per ogni riga su cui è stata ripetuta l'iterazione?