J'utilise CsvJdbc (c'est un pilote JDBC pour les fichiers csv) pour accéder à un fichier csv. Je ne sais pas combien de colonnes le fichier csv contient. Comment puis-je obtenir le nombre de colonnes? Existe-t-il une fonction JDBC pour cela? Je ne trouve aucune méthode pour cela dans java.sql.ResultSet.
Pour accéder au fichier, j'utilise un code similaire à l' exemple sur le site CsvJdbc.
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?la source
rs.getMetaData()
méthode est-elle chère? Interroge-t-il la base de données à chaque fois qu'elle est appelée ou non?rs.getMetaData()
appel peut être intensif; mais une fois que vous avez l'objet,rsmd
aucun appel supplémentaire à la base de données n'est généralement effectué lors de l'appel de méthodes sur l'objet de métadonnées; toutes les métadonnées sont remplies avec l'appel getMetaData.Nombre de colonnes dans le jeu de résultats que vous pouvez obtenir avec du code (car DB est utilisé PostgreSQL):
Mais vous pouvez obtenir plus de méta-informations sur les colonnes:
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 .
la source
Après avoir établi la connexion et exécuté la requête, essayez ceci:
la source
Cela imprimera les données dans les colonnes et arrivera à la nouvelle ligne une fois que la dernière colonne sera atteinte.
la source