您的位置 首页 java

Servlet 数据库访问

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

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

创建数据库表

在测试数据库 TEST 中创建 Employees 表,请按以下步骤进行:

步骤 1:

打开 命令行提示符(Command Prompt) ,并更改进入到安装目录,如下所示:

C:>
C:>cd Program Files mysql  bin 
C:Program FilesMySQLbin>
 

步骤 2:

登录到数据库,如下所示:

C:Program FilesMySQLbin>mysql -u root -p
Enter password: ********
mysql>
 

步骤 3:

在测试数据库 TEST 中创建 Employee 表,如下所示:

mysql> use TEST;
mysql> create table Employees
 (
 id int not null,
 age int not null,
 first varchar (255),
 last varchar (255)
 );
Query OK, 0 rows affected (0.08 sec)
mysql>
 

创建数据记录

最后,在 Employee 表中创建几条记录,如下所示:

my sql > INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Query OK, 1 row affected (0.05 sec)
 
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
 
mysql>
 

访问数据库

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

// 加载必需的库
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
 
public class DatabaseAccess extends HttpServlet{
 
 public void doGet(HttpServletRequest request,
 HttpServletResponse response)
 throws ServletException, IOException
 {
 // JDBC 驱动器名称和数据库的 URL
 static final String JDBC_DRIVER="com.mysql.jdbc.Driver"; 
 static final String DB_URL="jdbc:mysql://localhost/TEST";
 // 数据库的用户名与密码,需要根据自己的设置
 static final String USER = "root";
 static final String PASS = "password";
 // 设置响应内容类型
 response.setContentType("text/html");
 PrintWriter out = response.getWriter();
 String title = "数据库结果";
 String docType =
 "<!doctype html public "-//w3c//dtd html 4.0 " + "transitional//en">n";
 out.println(docType +
 "<html>n" +
 "<head><title>" + title + "</title></head>n" +
 "<body bgcolor="#f0f0f0">n" +
 "<h1 align="center">" + title + "</h1>n");
 try{
 // 注册 JDBC 驱动器
 Class.forName("com.mysql.jdbc.Driver");
 // 打开一个连接
 Connection conn = DriverManager.getConnection(DB_URL,USER,PASS);
 // 执行 SQL 查询
 Statement stmt = conn.createStatement();
 String sql;
 sql = "SELECT id, first, last, age FROM Employees";
 ResultSet rs = stmt.executeQuery(sql);
 // 展开结果集数据库
 while(rs.next()){
 // 通过字段检索
 int id = rs.getInt("id");
 int age = rs.getInt("age");
 String first = rs.getString("first");
 String last = rs.getString("last");
 // 输出数据
 out.println("ID: " + id + "<br>");
 out.println(", Age: " + age + "<br>");
 out.println(", First: " + first + "<br>");
 out.println(", Last: " + last + "<br>");
 }
 out.println("</body></html>");
 // 完成后关闭
 rs. close ();
 stmt.close();
 conn.close();
 }catch(SQLException se){
 // 处理 JDBC 错误
 se.printStackTrace();
 }catch(Exception e){
 // 处理 Class.forName 错误
 e.printStackTrace();
 }finally{
 // 最后是用于关闭资源的块
 try{
 if(stmt!=null)
 stmt.close();
 }catch(SQLException se2){
 }
 try{
 if(conn!=null)
 conn.close();
 }catch(SQLException se){
 se.printStackTrace();
 }
 }
 }
} 
 

现在让我们来编译上面的 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,输入链接:,将显示以下响应结果:

数据库结果
ID: 100, Age: 18, First: Zara, Last: Ali
ID: 101, Age: 25, First: Mahnaz, Last: Fatma
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal
 

文章来源:智云一二三科技

文章标题:Servlet 数据库访问

文章地址:https://www.zhihuclub.com/193496.shtml

关于作者: 智云科技

热门文章

网站地图