How to get the number of columns from a JDBC ResultSet? How to get the number of columns from a JDBC ResultSet? java java

How to get the number of columns from a JDBC ResultSet?


You can get columns number from 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(1));  System.out.println("Column Type Name of 1st column: "+rsmd.getColumnTypeName(1)); 


Number of a columns in the result set you can get with code (as DB is used PostgreSQL):

//load the driver for PostgreSQLClass.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 statementStatement stat = conn.createStatement();//obtain a result setResultSet rs = stat.executeQuery("SELECT c1, c2, c3, c4, c5 FROM MY_TABLE");//from result set give metadataResultSetMetaData rsmd = rs.getMetaData();//columns count from metadata objectint numOfCols = rsmd.getColumnCount();

But you can get more meta-informations about columns:

for(int i = 1; i <= numOfCols; i++){    System.out.println(rsmd.getColumnName(i));}

And at least but not least, you can get some info not just about table but about DB too, how to do it you can find here and here.