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.