Número de un columns in the result set que puede obtener con el código (PostgreSQL como se utiliza DB):
//load the driver for PostgreSQL
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost/test";
Properties props = new Properties();
props.setProperty("user","mydbuser");
props.setProperty("password","mydbpass");
Connection conn = DriverManager.getConnection(url, props);
//create statement
Statement stat = conn.createStatement();
//obtain a result set
ResultSet rs = stat.executeQuery("SELECT c1, c2, c3, c4, c5 FROM MY_TABLE");
//from result set give metadata
ResultSetMetaData rsmd = rs.getMetaData();
//columns count from metadata object
int numOfCols = rsmd.getColumnCount();
Pero usted puede conseguir más metainformaciones sobre columnas:
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
Y al menos pero no menos importante, puede obtener información no solo sobre la tabla, sino también sobre DB, cómo hacerlo puede encontrar here y here.
Sería interesante entender cómo el controlador CSV JDBC y su implementación 'ResultSetMetaData' maneja los registros CSV de longitud variable. p.ej. Si ha especificado 'SELECT * FROM sample' y cada fila contiene un número diferente de campos, ¿se volverá a evaluar el recuento de columnas para cada fila sobre la que se iteraron? – rhu