Getting Number of Columns

Consider a situation where there is a need to know about the number of columns in the table without touching our database.

Getting Number of Columns

Getting Number of Columns

     

Consider a situation where there is a need to know about the number of columns in the table without touching our database. As we are the programmers so why we should worry about the database. We want to do the manipulation by sitting on our computer through our program without going into the database.

In this example we are going to exactly the same as we said above. To make this possible we need to make a class named ServletGettingNoOfColumns,  the name of the program should be such that if in future there is any need to make any change in the program, you can easily understand in which program you have to make a change. As we know that in Servlet the main logic of the program is written inside the service method and in turn the service method calls the doGet() method. Now inside the doGet() method use the getWriter() method of the response object and its returns the PrintWriter object, which helps us to write on the browser. To get the number of columns from the database table there is a need for the connection between the database and the java program.  After the establishment of the connection with the database, pass a query for retrieving all the records from the database and this will return the PreparedStatement object. To get the number of columns from the database we firstly need a reference of ResultSetMetaData object and we will get it only when if we have the ResultSet object with us. To get the object of the ResultSet we will call the method executeQuery() of the PreparedStatement interface. Now we have the object of the ResultSet. By the help of the ResultSet we can get the object of ResultSetMetaData. We will get it by calling the method getMetaData() of the ResultSet interface. The number of columns in the databasd table will be retrieved by the method getColumnsCount() of the ResultSetMetaData interface. This method will return the integer type of value. The number of columns will be displayed on the browser by the PrintWriter object.

The code of the program is given below:

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ServletGettingNoOfColumns extends HttpServlet{
  public void doGet(HttpServletRequest request, 
  HttpServletResponse response

  throws
ServletException, IOException{
  response.setContentType("text/html");
  PrintWriter pw = response.getWriter();
  String connectionURL = "jdbc:mysql://localhost/zulfiqar";
  Connection connection=null;
  try{
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  connection = DriverManager.getConnection(connectionURL, 
  "root"
"admin");
  PreparedStatement pst = connection.prepareStatement(
  "select * from emp_details"
);
  ResultSet rs = pst.executeQuery();
  ResultSetMetaData rsmd = rs.getMetaData();
  int noOfColumns = rsmd.getColumnCount();
  //It shows the number of columns
  pw.println("The number of columns are " + noOfColumns);
  }
  catch(Exception e){
  pw.println("The exception is " + e);
  }
  }
}

web.xml file for this program:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
 <servlet>
 <servlet-name>Zulfiqar</servlet-name>
 <servlet-class>ServletGettingNoOfColumns</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>Zulfiqar</servlet-name>
 <url-pattern>/ServletGettingNoOfColumns</url-pattern>
 </servlet-mapping>
</web-app>

 Table emp_details in the database:

mysql> select * from emp_details;
+--------+----------+---------+-----------+----------+--------+---------+-------
--+
| userId | Name | surname | address1 | address2 | town | country | zipcod
e |
+--------+----------+---------+-----------+----------+--------+---------+-------
--+
| 86372 | Zulfiqar | Ahmed | Moradabad | Rohini | Rohini | Delhi | 110025
|
+--------+----------+---------+-----------+----------+--------+---------+-------

The output of the program is given below:

Download this example: