Accessing Access Database From Servlet
This article shows you how to access database from servlets. Here I am assuming that you are using win95/98/2000 and running Java Web Server. For the sake of simplicity I have used Microsoft Access Database as backend and Sun's JDBC-ODBC bridge to connect to access data source. First of all download the source code and database used in this tutorial and now follow the following the steps.
- Unzip the downloaded file into your favorite directory.
- Create an ODBC data source "emaildb" by selecting "emaildb.mdb" database from unzipped folder.
- Compile you emaildb.java file, move emaildb.class file to Java Web Servers servlets directory and register the servlet. Now open your browser and run the servlet.
Your browser should display the data from database.
Now we will examine how the code works.
import
java.io.*; import java.util.Enumeration; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import java.net.*; public class
emaildb extends HttpServlet{ public void
init(ServletConfig config) public void service (HttpServletRequest
req, HttpServletResponse res) HttpSession session = req.getSession(true); res.setContentType("text/html"); PrintWriter out = res.getWriter(); out.println("<HTML><HEAD><TITLE>Emai List.</TITLE>"); out.println("</HEAD>"); out.println("<BODY bgColor=blanchedalmond text=#008000 topMargin=0>"); out.println("<P align=center><FONT face=Helvetica><FONT color=fuchsia style=\"BACKGROUND-COLOR: white\"><BIG><BIG>List of E-mail addresses.</BIG></BIG></FONT></P>"); out.println("<P align=center>"); out.println("<TABLE align=center border=1 cellPadding=1 cellSpacing=1 width=\"75%\">");
out.println("<TR>"); out.println("<TD>Name</TD>"); out.println("<TD>E-mail</TD>"); out.println("<TD>Website</TD></TR>"); try{
//Connect to emaildb Data
source Statement theStatement=theConnection.createStatement(); ResultSet theResult=theStatement.executeQuery("select * from emaillists"); //Select all records from emaillists table.
//Fetch all the records and print in table out.println(); out.println("<TR>"); out.println("<TD>" + theResult.getString(1) + "</TD>"); 0 out.println("<TD>" + theResult.getString(2) + "</TD>"); String s=theResult.getString(3); out.println("<TD><a href=" + s + ">" + s + "</a></TD>"); 1 out.println("</TR>"); } theResult.close();//Close the result set 2 theStatement.close();//Close statement theConnection.close(); //Close database Connection }catch(Exception e){ 3 out.println(e.getMessage());//Print trapped error. } out.println("</TABLE></P>"); 4 out.println("<P> </P></FONT></BODY></HTML>"); } public void destroy(){ 5 } }
|
Here we have used Sun's JDBC-ODBC Bridge, but we can easily replace the driver in order to connect the servlet to another database. For example, we can use the following code to connect our program to MySQL database. 6
Class.forName("org.gjt.mm.mysql.Driver"); theConnection = DriverManager.getConnection("jdbc:mysql://192.192.10.1:3306/mysql", "mysql","mysql"); |
JDBC driver for MySQL is available at www.mysql.com and is free. Here I have assumed that your mysql server is running at port 3306 of computer, whose IP address is 192.192.10.1. 7