Nombre de colonnes dans le jeu de résultats que vous pouvez obtenir avec du code (car DB est utilisé PostgreSQL):
// charge le pilote pour PostgreSQL
Class.forName ("org.postgresql.Driver");
String url = "jdbc: postgresql: // localhost / test";
Propriétés props = nouvelles propriétés ();
props.setProperty ("utilisateur", "mydbuser");
props.setProperty ("mot de passe", "mydbpass");
Connexion conn = DriverManager.getConnection (url, accessoires);
// créer une instruction
Instruction stat = conn.createStatement ();
// obtenir un jeu de résultats
ResultSet rs = stat.executeQuery ("SELECT c1, c2, c3, c4, c5 FROM MY_TABLE");
// à partir du jeu de résultats, donne les métadonnées
ResultSetMetaData rsmd = rs.getMetaData ();
// nombre de colonnes à partir de l'objet de métadonnées
int numOfCols = rsmd.getColumnCount ();
Mais vous pouvez obtenir plus de méta-informations sur les colonnes:
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
Et au moins mais pas des moindres, vous pouvez obtenir des informations non seulement sur la table mais aussi sur DB, comment le faire, vous pouvez trouver ici et ici .
ResultSetMetaData
implémentation gèrent les enregistrements CSV de longueur variable. Par exemple, si vous avez spécifiéSELECT * FROM sample
et que chaque ligne contenait un nombre différent de champs, le nombre de colonnes serait-il réévalué pour chaque ligne qui a été itérée?