📜  Java Servlet 和 JDBC 示例 |在 MySQL 中插入数据

📅  最后修改于: 2022-05-13 01:56:42.062000             🧑  作者: Mango

Java Servlet 和 JDBC 示例 |在 MySQL 中插入数据

先决条件: Servlet、JDBC 连接

从Java Servlet 程序与 JDBC 连接的接口开始:

  1. 适当的 JDBC 环境应与数据库创建一起设置。
  2. 为此,请从 Internet 下载 mysql-connector.jar 文件,
  3. 下载后,将 jar 文件移动到 apache-tomcat 服务器文件夹,
  4. 将文件放在 apache-tomcat 目录中的lib文件夹中。
  5. 从接口的基本概念开始:
    • 第 1 步:在 MySQL 中创建数据库和表

      将jar文件放入文件夹后,在MySQL中创建数据库和表,

      mysql> create database demoprj;
      Query OK, 1 row affected (4.10 sec)
      
      mysql> use demoprj
      Database changed
      
      mysql> create table demo(id int(10), string varchar(20));
      Query OK, 0 rows affected (1.93 sec)
      
      mysql> desc demo;
      +--------+-------------+------+-----+---------+-------+
      | Field  | Type        | Null | Key | Default | Extra |
      +--------+-------------+------+-----+---------+-------+
      | id     | int(10)     | YES  |     | NULL    |       |
      | string | varchar(20) | YES  |     | NULL    |       |
      +--------+-------------+------+-----+---------+-------+
      2 rows in set (0.40 sec)
      
    • 第 2 步:实现所需的网页
      在 HTML 文件中创建一个表单,在其中获取将数据插入数据库所需的所有输入。在其中指定 servlet 名称,使用 POST 方法作为安全性是数据库连接的重要方面。
      
      
      
      Insert Data
      
      
          
          
              

      ID:

                                  
              

      String:

                         


                   

      输出:
      输出

      在插入所有必需的数据时提交数据(带验证)。

    • 第 3 步:使用 JDBC 连接创建Java Servlet 程序

      创建 JDBC 连接的步骤是

      1. 导入所有包
      2. 注册 JDBC 驱动程序
      3. 打开连接
      4. 执行查询,并检索结果
      5. 清理 JDBC 环境

      创建一个单独的类来创建数据库连接,因为在所有程序中编写相同的代码片段是一个蹩脚的过程。创建一个 。 Java文件,它返回一个 Connection 对象。

      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.SQLException;
        
      // This class can be used to initialize the database connection
      public class DatabaseConnection {
          protected static Connection initializeDatabase()
              throws SQLException, ClassNotFoundException
          {
              // Initialize all the information regarding
              // Database Connection
              String dbDriver = "com.mysql.jdbc.Driver";
              String dbURL = "jdbc:mysql:// localhost:3306/";
              // Database name to access
              String dbName = "demoprj";
              String dbUsername = "root";
              String dbPassword = "root";
        
              Class.forName(dbDriver);
              Connection con = DriverManager.getConnection(dbURL + dbName,
                                                           dbUsername, 
                                                           dbPassword);
              return con;
          }
      }
      
    • 第 4 步:要使用这个类方法,在Java Servlet 程序中创建一个对象

      下面的程序显示了创建连接并将数据插入demo表中的 Servlet 类,

      import java.io.IOException;
      import java.io.PrintWriter;
      import java.sql.Connection;
      import java.sql.PreparedStatement;
        
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
        
      // Import Database Connection Class file
      import code.DatabaseConnection;
        
      // Servlet Name
      @WebServlet("/InsertData")
      public class InsertData extends HttpServlet {
          private static final long serialVersionUID = 1L;
        
          protected void doPost(HttpServletRequest request, 
      HttpServletResponse response)
              throws ServletException, IOException
          {
              try {
        
                  // Initialize the database
                  Connection con = DatabaseConnection.initializeDatabase();
        
                  // Create a SQL query to insert data into demo table
                  // demo table consists of two columns, so two '?' is used
                  PreparedStatement st = con
                         .prepareStatement("insert into demo values(?, ?)");
        
                  // For the first parameter,
                  // get the data using request object
                  // sets the data to st pointer
                  st.setInt(1, Integer.valueOf(request.getParameter("id")));
        
                  // Same for second parameter
                  st.setString(2, request.getParameter("string"));
        
                  // Execute the insert command using executeUpdate()
                  // to make changes in database
                  st.executeUpdate();
        
                  // Close all the connections
                  st.close();
                  con.close();
        
                  // Get a writer pointer 
                  // to display the successful result
                  PrintWriter out = response.getWriter();
                  out.println("Successfully Inserted"
                              + "");
              }
              catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
      
    • 第 5 步:从 HTML 文件中获取数据

      要从 HTML 文件中获取数据,请使用 request 对象,该对象调用 getParameter() 方法从通道中获取数据。成功插入后,将创建 writer 对象以显示成功消息。

      从 Servlet 进行插入操作后,数据将反映在 MySQL 数据库中

      输出:
      成功

      MySQL 接口中的结果

      mysql> select * from demo;
      +------+---------------+
      | id   | string        |
      +------+---------------+
      |    1 | GeeksForGeeks |
      +------+---------------+
      1 row in set (0.06 sec)

本文展示了JDBC与Java Servlet程序的基本连接,要插入大量数据,则应进行适当的验证,就好像任何格式不正确的数据都会遇到错误一样。所有插入数据库的数据都应该加密。