datos - obtener nombre columna resultset java
¿Cómo obtener el número de columnas de un JDBC ResultSet? (5)
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? ¿Hay alguna función JDBC para esto? No puedo encontrar ningún método para esto en java.sql.ResultSet.
Para acceder al archivo, uso un código similar al example en el sitio web CsvJdbc.
Después de establecer la conexión y ejecutar la consulta, intente esto:
ResultSet resultSet;
int columnCount = resultSet.getMetaData().getColumnCount();
System.out.println("column count : "+columnCount);
Esto imprimirá los datos en columnas y llegará a una nueva línea una vez que se llegue a la última columna.
ResultSetMetaData resultSetMetaData = res.getMetaData();
int columnCount = resultSetMetaData.getColumnCount();
for(int i =1; i<=columnCount; i++){
if(!(i==columnCount)){
System.out.print(res.getString(i)+"/t");
}
else{
System.out.println(res.getString(i));
}
}
Número de ResultSetMetaData que puede obtener con el código (como se usa DB PostgreSQL):
//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 puede obtener más metainformaciones sobre columnas:
for(int i = 1; i <= numOfCols; i++)
{
System.out.println(rsmd.getColumnName(i));
}
Y al menos, pero no por eso menos importante, puede obtener información no solo sobre la tabla, sino también sobre DB, cómo hacerlo puede encontrar here y here .
Puede obtener el número de columnas de ResultSetMetaData :
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
PreparedStatement ps=con.prepareStatement("select * from stud");
ResultSet rs=ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
System.out.println("columns: "+rsmd.getColumnCount());
System.out.println("Column Name of 1st column: "+rsmd.getColumnName(2));
System.out.println("Column Type Name of 1st column: "+rsmd.getColumnTypeName(2));