举报投诉联系我们 手机版 热门标签 鳄鱼CMS
您的位置:鳄鱼CMS > servlet数据库访问基础 Servlet 数据库访问

servlet数据库访问基础 Servlet 数据库访问

2023-05-09 06:31 Servlet教程

servlet数据库访问基础 Servlet 数据库访问

servlet数据库访问基础 Servlet 数据库访问

servlet数据库访问基础

Servlet 数据库访问

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

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

创建数据库表

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

步骤 1:

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

C:>
C:>cd Program FilesMySQLbin
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 表中创建几条记录,如下所示:

mysql> 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,输入链接:http://localhost:8080/DatabaseAccess,将显示以下响应结果:

数据库结果
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
阅读全文
以上是鳄鱼CMS为你收集整理的servlet数据库访问基础 Servlet 数据库访问全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  • swift枚举关联值 Swift 枚举

    swift枚举关联值 Swift 枚举

    2023-03-23 Swift教程

    Swift 枚举枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。Swif...

  •  Swift函数式编程 不变性

    Swift函数式编程 不变性

    2023-04-28 Swift教程

    Swift函数式编程-不变性Swift支持函数式编程,这一篇介绍不变性(immutable)。不变性不变性是函数式编程的基础。先讨论一下Has...

  • 属性空 属性

    属性空 属性

    2023-05-06 Rust语言中文版

    属性在 Rust 语言中,声明可以用 ‘attributes’ 来注释。它们看起来像下面这样:#[test]或者是像这样:#![test]两者的区别是!,...

  • matlab串联矩阵维度不一致 MATLAB串联矩阵

    matlab串联矩阵维度不一致 MATLAB串联矩阵

    2023-03-18 MATLAB教程

    MATLAB中使用一对中括号“[ ]”,能够将两个矩阵连接起来,创建出一个新矩阵。MATLAB串联矩阵的两种类型:水平串联:要进行连接...

  •  MATLAB Simulink 仿真

    MATLAB Simulink 仿真

    2023-04-04 MATLAB教程

    Simulink 是 MATLAB 最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。本节要教你建立 simulink 仿真程序...

© 2024 鳄鱼CMS eyucms.com 版权所有 联系我们