Connexion à la base de données JSP
⚡ Résumé intelligent
La connexion à une base de données JSP permet à une application web de stocker et de gérer de grands volumes de données en reliant des pages JSP à une base de données relationnelle. Cette ressource explique comment créer une telle connexion. MySQL créer des tables, insérer des enregistrements et effectuer des opérations de sélection, d'insertion, de mise à jour et de suppression à l'aide des balises SQL JSTL.

Connexion à la base de données dans JSP
La base de données sert à stocker des données de grande taille, de plusieurs gigaoctets. JSP peut s'y connecter pour créer et gérer les enregistrements.
Dans ce didacticiel, nous apprendrons comment créer une table dans la base de données et comment créer des enregistrements dans ces tables via JSP.
Créer un tableau
In Base de données MYSQLNous pouvons créer une table dans la base de données avec n'importe quel client MySQL. Ici, nous utilisons phpMyAdmin, qui propose une option « Nouveau » pour créer une nouvelle table (voir la capture d'écran ci-dessous).
Dans ce cas, nous devons indiquer le nom de la table comme étant guru_test, et nous allons créer deux champs : emp_id et emp_name.
- Emp_id est de type entier
- Emp_name a le type de données varchar
Une autre option consiste à utiliser l'invite de commandes et à accéder au répertoire MySQL :
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
Nous pouvons nous connecter à la base de données comme suit :
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
Créez la table guru_test dans la base de données et nommez-la comme suit : GuruTestez la commande suivante sur l'invite de commandes MySQL :
Mysql> use GuruTest; MySql> create table guru_test( Emp_id int NOT NULL, Emp_name varchar(11), ); Once you execute this you get the following: Query OK, 0 rows affected(0.10 sec) MySQl> select * from guru_test; Query OK, 0 rows affected(0.10 sec)
Tout d'abord, les enregistrements sont insérés à l'aide de INSERT requête, et ensuite nous pouvons utiliser la SELECT requête pour vérifier si la table est créée ou non.
Créer des enregistrements
Après avoir créé une table, nous devons y insérer des enregistrements à l'aide de la requête INSERT, qui est présentée ci-dessous :
Les enregistrements saisis ici sont :
- 1 et gourou emp1
- 2 et gourou emp2
MySql>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('1', 'guru emp1'); Query OK, 1 row affected (0.05 sec) MySQL>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('2', 'guru emp2'); Query OK, 1 row affected (0.05 sec)
JSP Operations : Insérer, Mettre à jour, Supprimer, Sélectionner
Grâce à JSP, nous pouvons effectuer plusieurs opérations sur la base de données : insérer des enregistrements, supprimer ceux qui sont inutiles et les mettre à jour. L'opération SELECT permet de récupérer les enregistrements souhaités.
Sélectionner
L'opération Select est utilisée pour sélectionner les enregistrements de la table.
Exemple :
Dans cet exemple, nous allons apprendre à utiliser l'opération de sélection pour extraire des enregistrements de la table guru_test, créée dans la section précédente.
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <sql:query dataSource="${snapshot}" var="result"> SELECT * from guru_test; </sql:query> <table> <tr> <th>Guru ID</th> <th>Name</th> </tr> <c:forEach var="row" items="${result.rows}"> <tr> <td><c:out value="${row.emp_id}"/></td> <td><c:out value="${row.emp_name}"/></td> </tr> </c:forEach> </table> </body> </html>
Explication du code :
Code Ligne 1: Nous importons ici les modules io, util et SQL bibliothèques de Java.
Code Ligne 3: Nous importons ici la bibliothèque principale de JSTL en lui donnant le préfixe « c », ce qui permettra d'obtenir un résultat.
Code Ligne 4: Nous importons ici la bibliothèque SQL de JSTL en lui donnant le préfixe sql, ce qui facilitera les opérations SQL.
Code Ligne 15-17: Ici, en utilisant SQL, nous nous connectons à la source de données en nommant la variable « snapshot » et le pilote en utilisant JDBC. Nous ajoutons également le nom d'utilisateur et le mot de passe : « gururoot » et « guru ».
Code Ligne 19-21: Nous utilisons ici la requête SQL de la requête SELECT.
Code Ligne 31-32: Nous imprimons le résultat pour l'identifiant de l'employé et le nom de l'employé, qui sont extraits des résultats de la requête, et nous utilisons une boucle foreach pour imprimer le résultat.
Lorsque vous exécuterez le code ci-dessus, vous obtiendrez le résultat suivant :
Sortie :
Ici, les deux enregistrements seront extraits de la base de données :
- 1 gourou emp1
- 2 gourou emp2
insérer
L'opérateur Insertion est utilisé pour insérer les enregistrements dans le base de données.
Exemple :
Dans cet exemple, nous allons apprendre à insérer des enregistrements dans la table guru_test.
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurusql:update dataSource="${guru}" var="guruvar"> INSERT INTO guru_test VALUES (3, 'emp emp3'); </gurusql:update> </body> </html>
Explication du code :
Code Ligne 19-20: Nous insérons ici des enregistrements dans la table guru_test de la GuruBase de données de test. Les enregistrements insérés sont : empID – 3 et empname – emp emp3Ces enregistrements seront insérés dans la table. Lorsque vous exécuterez le code, les enregistrements seront insérés dans la table guru_test, avec la valeur 3 et emp emp3.
À noter: Ici, nous n'affichons pas le résultat car nous insérons simplement l'enregistrement dans la table. Nous pouvons obtenir cet enregistrement à l'aide de la requête SELECT suivante : 'SELECT * FROM guru_test'. Si l'enregistrement était inséré, nous obtiendrions la valeur 3 et emp3Si l'enregistrement n'est pas inséré, alors le chiffre 3 n'apparaîtra pas dans les enregistrements de la table.
Supprimer
Il s'agit de l'opération de suppression qui permet de supprimer les enregistrements de la table guru_test.
Exemple :
Nous allons utiliser ici la requête DELETE pour supprimer l'enregistrement de la table guru_test. L'enregistrement à supprimer doit être stocké dans la variable « guruid », puis l'enregistrement correspondant est supprimé de la base de données.
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="3"/> <gurusql:update dataSource="${guru}" var="guruvar"> DELETE FROM guru_test WHERE emp_id = ? <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
Explication du code :
Code Ligne 18: Nous définissons une variable guruid dont la valeur est 3, qui doit être supprimée de la base de données. C'est toujours une clé primaire de la table. Dans ce cas, la clé primaire est le emp_id.
Code Ligne 19-22: Nous utilisons ici une requête DELETE qui définit un paramètre dans la clause WHERE. Ce paramètre, guruid, est défini à la ligne 18 du code. L'enregistrement correspondant est supprimé.
Sortie :
Lorsque vous exécutez le code ci-dessus, l'enregistrement avec emp_id comme 3 est supprimé.
À noter: Dans cet exemple, nous ne pouvons pas afficher le résultat car nous supprimons l'enregistrement de la table. Pour vérifier si l'enregistrement a bien été supprimé, nous devons utiliser la requête SELECT « SELECT * FROM guru_test ». Si l'identifiant de l'employé (emp id) est égal à 3, la suppression a échoué ; sinon, l'enregistrement a été supprimé avec succès.
Mises à jour
La mise à jour permet de modifier les enregistrements de la table.
Exemple :
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="2"/> <gurusql:update dataSource="${guru}" var="guruvar"> UPDATE guru_test SET emp_name='emp guru99' <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
Explication du code :
Code Ligne 18: Ici, nous définissons une variable guruid sur 2. Il s'agit de l'ID où nous voulons mettre à jour l'enregistrement.
Code Ligne 19-22: Ici, nous utilisons une requête de mise à jour pour mettre à jour l'enregistrement dans la table guru_test de l'enregistrement, qui est défini au point 18. Ici, emp guru2 est remplacé par emp guru99.
Sortie :
Lorsque vous exécutez le code ci-dessus, l'enregistrement avec emp_id 2 est modifié en 99. Par conséquent, la sortie affichera désormais emp « guru99 » au lieu de emp « guru2 ».


