Getting Columns Names using Servlets

Consider a situation where there is a need to know
about the name of the columns without touching our database. As we are the
programmers so why we need to 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 ServletGettingColumnsNames,
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. 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 a column names from the database
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 column names from the database
we firstly need a reference of ResultSetMetaData object and we will get
it only when if we have the ResultSet object. 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 names of the
columns will be retrieved by the method getColumnsNames() of the ResultSetMetaData
interface. The output will be displayed to you by the PrintWriter object.
The code of the program is given below:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class ServletGettingColumnsNames 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("org.gjt.mm.mysql.Driver");
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 + "<br>");
//It shows the name of the columns
pw.println("The name of the columns are: <br>");
for(int i =1; i<=noOfColumns;i++){
String names = rsmd.getColumnName(i);
pw.println(names);
}
}
catch(Exception e){
pw.println("The exception is " + e);
}
}
}
|
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>ServletGettingColumnsNames</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Zulfiqar</servlet-name>
<url-pattern>/ServletGettingColumnsNames</url-pattern>
</servlet-mapping>
</web-app>
|
The output of the program is given below:
Table in the database:
mysql> select * from emp_details;
+--------+----------+---------+-----------+----------+-------+---------+--------
-+
| userId | Name | surname | address1 | address2 | town | country | zipcode
|
+--------+----------+---------+-----------+----------+-------+---------+--------
-+
| 73979 | zulfiqar | Ahmed | Moradabad | Delhi | Okhla | India | 110025
|
+--------+----------+---------+-----------+----------+-------+---------+--------
-+
1 row in set (0.00 sec) |
Download this
example:

|
Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: