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:

|