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 }
现在让我们来编译上面的 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
浙公网安备 33010602011771号