Ejemplo de Java Servlet y JDBC | Insertar datos en MySQL

Requisitos previos: servlet , conectividad JDBC

Para comenzar con la interfaz del programa Java Servlet con la conexión JDBC:

  1. Se debe configurar un entorno JDBC adecuado junto con la creación de la base de datos.
  2. Para hacerlo, descargue el archivo mysql-connector.jar de Internet,
  3. A medida que se descarga, mueva el archivo jar a la carpeta del servidor apache-tomcat,
  4. Coloque el archivo en la carpeta lib presente en el directorio apache-tomcat.
  5. Para comenzar con el concepto básico de interfaz:
    • Paso 1: Creación de Base de Datos y Tabla en MySQL

      Tan pronto como el archivo jar se coloque en la carpeta, cree una base de datos y una tabla en 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)
      
    • Paso 2: Implementación de las páginas web requeridas
      Cree un formulario en un archivo HTML, donde tome todas las entradas necesarias para insertar datos en la base de datos. Especifique el nombre del servlet en él, con el método POST ya que la seguridad es un aspecto importante en la conectividad de la base de datos.

      <!DOCTYPE html>
      <html>
      <head>
      <title>Insert Data</title>
      </head>
      <body>
          <!-- Give Servlet reference to the form as an instances 
          GET and POST services can be according to the problem statement-->
          <form action="./InsertData" method="post">
              <p>ID:</p
              <!-- Create an element with mandatory name attribute,
              so that data can be transfer to the servlet using getParameter() -->
              <input type="text" name="id"/>
              <br/>
              <p>String:</p
              <input type="text" name="string"/>
              <br/><br/><br/>
              <input type="submit"/>
          </form>
      </body>
      </html>

      Producción:
      output

      Envíe los datos (con validación) a medida que se insertan todos los datos requeridos.

    • Paso 3: Creación del programa Java Servlet con conexión JDBC

      Para crear una conexión JDBC, los pasos son

      1. Importar todos los paquetes
      2. Registrar el controlador JDBC
      3. Abrir una conexión
      4. Ejecutar la consulta y recuperar el resultado.
      5. Limpiar el entorno JDBC

      Cree una clase separada para crear una conexión de base de datos, ya que es un proceso cojo para escribir el mismo fragmento de código en todo el programa. Cree un archivo .java que devuelva un objeto 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;
          }
      }
    • Paso 4: para usar este método de clase, cree un objeto en el programa Java Servlet

      El programa a continuación muestra la clase de servlet que crea una conexión e inserta los datos en la demotabla,

      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("<html><body><b>Successfully Inserted"
                              + "</b></body></html>");
              }
              catch (Exception e) {
                  e.printStackTrace();
              }
          }
      }
    • Paso 5: obtenga los datos del archivo HTML

      Para obtener los datos del archivo HTML, se utiliza el objeto de solicitud que llama al método getParameter() para obtener los datos del canal. Después de una inserción exitosa, el objeto de escritor se crea para mostrar un mensaje de éxito.

      Después de la operación de inserción desde Servlet, los datos se reflejarán en la base de datos MySQL

      Producción:
      success

      Resultado en la interfaz de MySQL

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

Este artículo muestra la conexión básica de JDBC con el programa Java Servlet, para insertar datos en un gran volumen, luego se debe realizar una validación adecuada como si cualquier dato que no está en el formato adecuado encontrara un error. Todos los datos que se inserten en la base de datos deben estar encriptados.

Publicación traducida automáticamente

Artículo escrito por bilal-hungund y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *