Servlet 数据库访问

本教程假定您已经了解了 JDBC 应用程序的工作方式。在您开始学习 Servlet 数据库访问之前,请确保您已经有适当的 JDBC 环境设置和数据库。

从基本概念下手,让我们来创建一个简单的表,并在表中创建几条记录。

创建数据库表

创建数据记录

访问数据库

下面的实例演示了如何使用 Servlet 访问 TEST 数据库。

 1 // 加载必需的库
 2 import java.io.*;
 3 import java.util.*;
 4 import javax.servlet.*;
 5 import javax.servlet.http.*;
 6 import java.sql.*;
 7  
 8 public class DatabaseAccess extends HttpServlet{
 9     
10   public void doGet(HttpServletRequest request,
11                     HttpServletResponse response)
12             throws ServletException, IOException
13   {
14       // JDBC 驱动器名称和数据库的 URL
15       static final String JDBC_DRIVER="com.mysql.jdbc.Driver";  
16       static final String DB_URL="jdbc:mysql://localhost/TEST";
17 
18       //  数据库的凭据
19       static final String USER = "root";
20       static final String PASS = "password";
21 
22       // 设置响应内容类型
23       response.setContentType("text/html");
24       PrintWriter out = response.getWriter();
25       String title = "数据库结果";
26       String docType =
27         "<!doctype html public \"-//w3c//dtd html 4.0 " +
28          "transitional//en\">\n";
29          out.println(docType +
30          "<html>\n" +
31          "<head><title>" + title + "</title></head>\n" +
32          "<body bgcolor=\"#f0f0f0\">\n" +
33          "<h1 align=\"center\">" + title + "</h1>\n");
34       try{
35          // 注册 JDBC 驱动器
36          Class.forName("com.mysql.jdbc.Driver");
37 
38          // 打开一个连接
39          conn = DriverManager.getConnection(DB_URL,USER,PASS);
40 
41          // 执行 SQL 查询
42          stmt = conn.createStatement();
43          String sql;
44          sql = "SELECT id, first, last, age FROM Employees";
45          ResultSet rs = stmt.executeQuery(sql);
46 
47          // 从结果集中提取数据
48          while(rs.next()){
49             // 根据列名称检索
50             int id  = rs.getInt("id");
51             int age = rs.getInt("age");
52             String first = rs.getString("first");
53             String last = rs.getString("last");
54 
55             // 显示值
56             out.println("ID: " + id + "<br>");
57             out.println(", Age: " + age + "<br>");
58             out.println(", First: " + first + "<br>");
59             out.println(", Last: " + last + "<br>");
60          }
61          out.println("</body></html>");
62 
63          // 清理环境
64          rs.close();
65          stmt.close();
66          conn.close();
67       }catch(SQLException se){
68          // 处理 JDBC 错误
69          se.printStackTrace();
70       }catch(Exception e){
71          // 处理 Class.forName 错误
72          e.printStackTrace();
73       }finally{
74          // 最后是用于关闭资源的块
75          try{
76             if(stmt!=null)
77                stmt.close();
78          }catch(SQLException se2){
79          }// 我们不能做什么
80          try{
81             if(conn!=null)
82             conn.close();
83          }catch(SQLException se){
84             se.printStackTrace();
85          }//end finally try
86       } //end try
87    }
88 } 
View Code

现在让我们来编译上面的 Servlet,并在 web.xml 文件中创建以下条目:

....
 <servlet>
     <servlet-name>DatabaseAccess</servlet-name>
     <servlet-class>DatabaseAccess</servlet-class>
 </servlet>
 
 <servlet-mapping>
     <servlet-name>DatabaseAccess</servlet-name>
     <url-pattern>/DatabaseAccess</url-pattern>
 </servlet-mapping>
....

现在调用这个 Servlet,输入链接:http://localhost:8080/DatabaseAccess,将显示以下响应结果:

 

本文转载自:http://www.runoob.com/servlet/servlet-database-access.html

posted on 2015-12-10 16:45  奈何作贼  阅读(124)  评论(0)    收藏  举报

导航