Estoy usando CsvJdbc (es un controlador JDBC para archivos csv) para acceder a un archivo csv. No sé cuántas columnas contiene el archivo csv. ¿Cómo puedo obtener el número de columnas? ¿Existe alguna función JDBC para esto? No puedo encontrar ningún método para esto en java.sql.ResultSet.
Para acceder al archivo, utilizo un código similar al ejemplo del sitio web CsvJdbc.
ResultSetMetaData
implementación manejan los registros CSV de longitud variable. Por ejemplo, si especificasteSELECT * FROM sample
y cada fila contuviera un número diferente de campos, ¿se volvería a evaluar el recuento de columnas para cada fila que se repitiera?fuente
rs.getMetaData()
caro el método? ¿Consulta la base de datos cada vez que se llama o no?rs.getMetaData()
llamada puede ser intensa; pero una vez que tiene el objetorsmd
, por lo general, no se realizan llamadas adicionales a la base de datos al invocar métodos en el objeto de metadatos; todos los metadatos se rellenan con la llamada getMetaData.Número de columnas en el conjunto de resultados que puede obtener con el código (ya que DB se usa PostgreSQL):
Pero puede obtener más metainformaciones sobre las columnas:
Y al menos, pero no menos importante, puede obtener información no solo sobre la mesa sino también sobre DB, cómo hacerlo, puede encontrar aquí y aquí .
fuente
Después de establecer la conexión y ejecutar la consulta, intente esto:
fuente
Esto imprimirá los datos en columnas y aparecerá en una nueva línea una vez que se alcance la última columna.
fuente