Número de columnas en el conjunto de resultados que puede obtener con el código (ya que DB se usa PostgreSQL):
// carga el controlador para PostgreSQL
Class.forName ("org.postgresql.Driver");
String url = "jdbc: postgresql: // localhost / test";
Propiedades props = new Properties ();
props.setProperty ("usuario", "mydbuser");
props.setProperty ("contraseña", "mydbpass");
Conexión conn = DriverManager.getConnection (url, props);
// crear declaración
Declaración stat = conn.createStatement ();
// obtener un conjunto de resultados
ResultSet rs = stat.executeQuery ("SELECCIONAR c1, c2, c3, c4, c5 DESDE MI_TABLE");
// del conjunto de resultados dar metadatos
ResultSetMetaData rsmd = rs.getMetaData ();
// las columnas cuentan del objeto de metadatos
int numOfCols = rsmd.getColumnCount ();
Pero puede obtener más metainformaciones sobre las 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 mesa sino también sobre DB, cómo hacerlo, puede encontrar aquí y aquí .
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?