Académique Documents
Professionnel Documents
Culture Documents
Application 3
1. Création BD
2. Ajout du driver
1
Section : 2 LTIC-IOT
Ecole nationale d’Electronique et des
Matière : Java 2
Télécommunications de Sfax
Enseignante : Ghada Feki
Année Universitaire : 2022 - 2023
Pour manipuler une base de données, il faut importer des classes du package
java.sql. Les principales classes de ce package sont : DriverManager,
Connection, Statement, PreparedStatement et ResultSet.
3. Création du modèle
Ajouter les objets Java Bean dans le modèle (le package com.tests.beans) :
CompteClient (numero, idProp, dateCreation, chiffreAffaire) : les
attributs privés+ constructeurs - getters&setters.
ProfilClient (idProp, nom, prenom, societe, ville, adresse) : les
attributs privés+ constructeurs - getters&setters.
Les types des attributs conformes aux champs de tables : int, String, Date,
double.
Utiliser les outils sources d’Eclipse / Netbeans pour générer automatiquement
les constructeurs, les setters et les getters.
2
Section : 2 LTIC-IOT
Ecole nationale d’Electronique et des
Matière : Java 2
Télécommunications de Sfax
Enseignante : Ghada Feki
Année Universitaire : 2022 - 2023
import java.sql.*;
public class DaoFactory {
private String url;
private String username;
private String password;
return instance;
}
public Connection getConnection() throws
SQLException {
return DriverManager.getConnection(url, username,
password);
}
// Récupération du Dao
public CompteClientsDao getCompteClientsDao() {
return new CompteClientImp(this);
}
}
3
Section : 2 LTIC-IOT
Ecole nationale d’Electronique et des
Matière : Java 2
Télécommunications de Sfax
Enseignante : Ghada Feki
Année Universitaire : 2022 - 2023
import java.sql.*;
import java.sql.Date;
import java.util.List;
import java.util.ArrayList;
@Override
public void ajouter(CompteClient compteClient) {
Connection connexion = null;
PreparedStatement preparedStatement = null;
try {
connexion = daoFactory.getConnection();
preparedStatement = connexion.prepareStatement("Insert
into compteclient(numero,idClient,dateCreation,chiffreAffaire)
values (?,?,?,?);");
preparedStatement.setInt(1, compteClient.getNumero());
preparedStatement.setInt(2, compteClient.getIdClient());
preparedStatement.setDate(3, (Date)
compteClient.getDateCreation());
preparedStatement.setDouble(4,
compteClient.getChiffreAffaire());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public List <CompteClient> lister() {
List<CompteClient> compteClients = new
ArrayList<CompteClient>();
Connection connexion = null;
Statement statement = null;
ResultSet resultat = null;
try {
connexion = daoFactory.getConnection();
statement = connexion.createStatement();
resultat = statement.executeQuery("Select
numero,idClient,dateCreation,chiffreAffaire from
compteclient;");
while (resultat.next()) {
int numero = resultat.getInt("numero");
int idClient = resultat.getInt("idClient");
4
Section : 2 LTIC-IOT
Ecole nationale d’Electronique et des
Matière : Java 2
Télécommunications de Sfax
Enseignante : Ghada Feki
Année Universitaire : 2022 - 2023
compteClients.add(compteClient);
}
} catch (SQLException e) {
e.printStackTrace();
}
return compteClients;
}
}
5. Création de la vue
Exemple de vue :
5
Section : 2 LTIC-IOT
Ecole nationale d’Electronique et des
Matière : Java 2
Télécommunications de Sfax
Enseignante : Ghada Feki
Année Universitaire : 2022 - 2023
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form method="post" action="/mavenproject6/ClientA">
<p>
<label for="numero">Numero : </label>
<input type="text" name="numero" id="numero" />
</p>
<p>
<label for="idClient">IdClient : </label>
<input type="text" name="idClient" id="idClient" />
</p>
<p>
<label for="dateCreation">Date de Creation : </label>
<input type="text" name="dateCreation" id="dateCreation" />
</p>
<p>
<label for="chiffreAffaire">Chiffre Affaire : </label>
<input type="text" name="chiffreAffaire" id="chiffreAffaire" />
</p>
<input type="submit" />
</form>
<ul>
<c:forEach var="compteClient" items="${ compteClients }">
<li><c:out value="${ compteClient.numero }" /> <c:out value="${
compteClient.idClient }" />
<c:out value="${ compteClient.dateCreation }" /> <c:out value="${
compteClient.chiffreAffaire }" />
</li>
</c:forEach>
</ul>
</body>
</html>
servlet AjoutCompteClient
6
Section : 2 LTIC-IOT
Ecole nationale d’Electronique et des
Matière : Java 2
Télécommunications de Sfax
Enseignante : Ghada Feki
Année Universitaire : 2022 - 2023
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name="ClientA", urlPatterns={"/ClientA"})
public class ClientA extends HttpServlet {
DaoFactory daoFactory = DaoFactory.getInstance();
CompteClientsDao compteClientsDao =
daoFactory.getCompteClientsDao();
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("compteClients",
compteClientsDao.lister());
this.getServletContext().getRequestDispatcher( "/WEB-
INF/ajoutCC.jsp" ).forward( request, response );
}
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
CompteClient compteClient = new CompteClient();
compteClient.setNumero(Integer.parseInt(request.getParame
ter("numero")));
compteClient.setIdClient(Integer.parseInt(request.getPara
meter("idClient")));
compteClient.setDateCreation(Date.valueOf(request.getParameter(
"dateCreation")));
compteClient.setChiffreAffaire(Double.parseDouble(request
.getParameter("chiffreAffaire")));
compteClientsDao.ajouter(compteClient);
7
Section : 2 LTIC-IOT
Ecole nationale d’Electronique et des
Matière : Java 2
Télécommunications de Sfax
Enseignante : Ghada Feki
Année Universitaire : 2022 - 2023
request.setAttribute("compteClients",
compteClientsDao.lister());
this.getServletContext().getRequestDispatcher("/WEB-
INF/ajoutCC.jsp").forward(request,response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
Servlet ListComptes
Cette servlet appelle le dao pour récupérer dans une liste de tous
les comptes.
Exercice
1. Enrichir votre application par les méthodes, les pages jsp et les servlets
nécessaires pour l'exploiter convenablement.
2. Ajouter une table intitulée utilisateur contenant les coordonnées (login et mot
de passe) des utilisateurs ayant le droit d'accès à votre application. Une
servlet doit contrôler la validité du login et du mot de passe. En cas d'une
authentification correcte l'utilisateur sera dirigé vers la page d'accueil. Une
variable session sera créée. Dans le cas échéant il sera redirigé de nouveau
vers la page d'authentification.