Estou usando o CsvJdbc (é um driver JDBC para arquivos csv) para acessar um arquivo csv. Não sei quantas colunas o arquivo csv contém. Como posso obter o número de colunas? Existe alguma função JDBC para isso? Não consigo encontrar nenhum método para isso em java.sql.ResultSet.
Para acessar o arquivo, utilizo um código semelhante ao exemplo do site CsvJdbc.
ResultSetMetaData
implementação lidam com registros CSV de comprimento variável. Por exemplo, se você especificouSELECT * FROM sample
e cada linha continha um número diferente de campos, a contagem de colunas seria reavaliada para cada linha que foi iterada?fonte
rs.getMetaData()
método é caro? Ele consulta o banco de dados toda vez que é chamado ou não?rs.getMetaData()
chamada pode ser intensa; mas, depois de ter o objetorsmd
, normalmente nenhuma chamada adicional ao banco de dados é feita ao invocar métodos no objeto de metadados; todos os metadados são preenchidos com a chamada getMetaData.Número de colunas no conjunto de resultados que você pode obter com o código (como DB é usado PostgreSQL):
Mas você pode obter mais meta-informações sobre colunas:
E pelo menos, mas não menos importante, você pode obter algumas informações não apenas sobre a mesa, mas também sobre o DB, como fazer isso você pode encontrar aqui e aqui .
fonte
Depois de estabelecer a conexão e executar a consulta, tente o seguinte:
fonte
Isso imprimirá os dados em colunas e chegará a uma nova linha assim que a última coluna for alcançada.
fonte