Requisitos previos: servlet , conectividad JDBC
Para comenzar con la interfaz del programa Java Servlet con la conexión JDBC:
- Se debe configurar un entorno JDBC adecuado junto con la creación de la base de datos.
- Para hacerlo, descargue el archivo mysql-connector.jar de Internet,
- A medida que se descarga, mueva el archivo jar a la carpeta del servidor apache-tomcat,
- Coloque el archivo en la carpeta lib presente en el directorio apache-tomcat.
- 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:
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
- Importar todos los paquetes
- Registrar el controlador JDBC
- Abrir una conexión
- Ejecutar la consulta y recuperar el resultado.
- 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"
;
// 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
demo
tabla,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:
Resultado en la interfaz de MySQL
mysql> select * from demo; +------+---------------+ | id | string | +------+---------------+ | 1 | GeeksForGeeks | +------+---------------+ 1 row in set (0.06 sec)
- Paso 1: Creación de Base de Datos y Tabla en MySQL
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