DOC

Beginner Using Servlets to display, insert and update records in database.(1)

By April Berry,2014-09-16 12:56
6 views 0
Beginner Using Servlets to display, insert and update records in database.(1)

    Beginner Using Servlets to display, insert and update records in

    database.(1)

作者;spring.z

email: spring.z@elong.com

日期;2001-7-3 9:08:37

Displaying Records from the Database with Java Servlets.

Overview :

    In this article I'll explain each step you need to know to display records from the database using Servlets. The steps for displaying records in JSP pages and Java Beans are almost the same. We will first build a small example Microsoft Access database, create a

    DSN for it and using JDBC ( Java Database Connectivity ) driver connect with it and display the records from a given table. Since 80% of your time developing applications will be spent on interacting with databases, you should pay utmost importance to

    this article.

Access Database :

    You can use any database of your choice but for this article I will stick with Microsoft Access database on a Windows platform. The steps for creating such a database and assigning a DSN have already been explained in detail in an earlier article, you should consult that article for details. I will only briefly mention it here.

    Create a new Access database with the name of 'odbc_exmp.mdb' and create a table 'Names' containing three fields 'ID', 'first_name'

    and 'last_name' where 'ID' is the primary key :

    Go to the control panel and create a new DSN ( Data Source Name ) 'odbc_exmp' for it and point it to the path of your database on your computer.

Populate the 'Names' table with any values like the following so

    that we can display the records later :

    We are finished with the database. Move on to the next page where we create our Java Servlet to display these records on the user screen.

DisplayServlet :

Create a new DisplayServlet.java file in the /APP_NAME/WEB-

    INF/classes/com/stardeveloper/servlets/db/ folder. Note /APP_NAME/ is the path of your application within your application server, in Tomcat 4.0 /APP_NAME/ will be /CATALINA_HOME/webapps/star/ where 'star' is the name of the application.

Copy and paste the following code into DisplayServlet.java file

    and compile it :

package com.stardeveloper.servlets.db;

import java.sql.*;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

    public class DisplayServlet extends HttpServlet {

     public void doGet(HttpServletRequest req, HttpServletResponse

    res)

     throws ServletException, IOException {

     res.setContentType("text/html");

     PrintWriter out = res.getWriter();

     out.print("");

     out.print("");

     out.print("

\"");

     out.print( req.getRequestURI() );

     out.print("\" method=\"post\">");

     out.print("<input type=\"submit\" ");

     out.print("value=\" \"> ");

     out.print("Display Records");

     out.print("");

     out.close();

     }

     public void doPost(HttpServletRequest req, HttpServletResponse

    res)

     throws ServletException, IOException {

     res.setContentType("text/html");

     PrintWriter out = res.getWriter();

     out.print("");

     out.print("");

     out.print("

"); 

     out.print("ID\tFirst ");

     out.println("Name\tLast Name\n");

     // debugging info

     long time1 = System.currentTimeMillis();

     // connecting to database

     Connection con = null;

     Statement stmt = null;

     ResultSet rs = null;

     try {

     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

     con =

    DriverManager.getConnection("jdbc:odbc:odbc_exmp");

     stmt = con.createStatement();

     rs = stmt.executeQuery("SELECT * FROM Names");

     // displaying records

     while(rs.next()) {

     out.print(rs.getObject(1).toString());

     out.print("\t");

     out.print(rs.getObject(2).toString());

     out.print("\t\t");

     out.print(rs.getObject(3).toString());

     out.print("\n");

     }

     } catch (SQLException e) {

     throw new

     ServletException("Servlet Could not display records.",

    e);

     } catch (ClassNotFoundException e) {

     throw new

     ServletException("JDBC Driver not found.", e);

     } finally {

     try {

     if(rs != null) {

     rs.close();

     rs = null;

     }

     if(stmt != null) {

     stmt.close();

     stmt = null;

     }

     if(con != null) {

     con.close();

     con = null;

     }

     } catch (SQLException e) {}

     }

     // debugging info

     long time2 = System.currentTimeMillis();

     out.print("");

     out.print("

Search took : ");

     out.print( (time2 - time1) );

     out.print(" ms.

");

     out.print("\">\"");

     out.print( req.getRequestURI() );

     out.print("\">Back

");

     out.print("");

     out.close();

     }

}

    Start your application server and point your browser to http://localhost:8080/star/servlet/com.stardeveloper.servlets.db.DisplayServletto see the Servlet display records on your computer.

    To see the demo please move on to the last page of this article.

    Move on to the next page where I explain the steps shown above to connect to the database.

Steps of Connecting to Database :

    In the previous page we developed a Servlet 'DisplayServlet' which extends HttpServlet class and overrides doGet() and doPost() methods. In the doGet() method we display a Form to the user to click, after which he will be shown records from our

'odbc_exmp.mdb' database. Nothing much to talk about yet. In

    doPost() method we make a connection to the database and iterate through it's records. This is the method which needs more explanation.

Step 1 : Loading JDBC Driver :

First step to connect to any database using JDBC is to first load

    a JDBC driver. Once loaded we use methods of this driver to interact with the database. If JDBC driver is not loaded or could not be loaded we cannot connect to the database. For this example we are using Sun's JDBC/ODBC bridge driver though not a production

    class driver does allow us to connect to any ODBC compliant database on Windows platform. So the first step will be :

     Connection con = null;

     Statement stmt = null;

     ResultSet rs = null;

     try {

     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

    Notice that we first declare the three objects we will be using, Connection, Statement and ResultSet objects. All of them are found in the java.sql package. We then start a try block to catch any exceptions that may be thrown. Last line is the main step where we dynamically load the JDBC driver using Class.forName() method. sun.jdbc.odbc.JdbcOdbcDriver is the JDBC driver we are using.

Step 2 : Making Connection :

Ok we have loaded the JDBC driver it is time to make connection to

    the database. We do this using DriverManager.getConnection() method. As an argument to this method we provide 'path' to the database we are going to connect with.

     con = DriverManager.getConnection("jdbc:odbc:odbc_exmp");

    The path to our database is 'jdbc:odbc:odbc_exmp'. If you have to substitute some other DSN then replace 'odbc_exmp' with the newer one e.g. 'jdbc:odbc:newDSN'.

Step 3 : Retrieving Records :

We are connected to the database, how to display records? well to

    display records we will have to create just two more objects, Statement and ResultSet. Statement object encapsulates the SQL query we want to execute and ResultSet object is the real object which carries our records which we want to display.

     stmt = con.createStatement();

     rs = stmt.executeQuery("SELECT * FROM Names");

    We create the Statement object using Connection.createStatement() method. Once created we provide it with the SQL query we want to use to retrieve records, which in this case is "SELECT * FROM

    Names". This query retrieves all records from the 'Names' table. Statement.executeQuery() method returns a ResultSet object containing the records retrieved using that query.

Report this document

For any questions or suggestions please email
cust-service@docsford.com