0% ont trouvé ce document utile (0 vote)
25 vues8 pages

TP 6

Ce document présente un TP sur le développement d'une application de gestion de livres utilisant JSP, Servlet et JPA dans un environnement JEE. Il décrit les étapes pour créer une base de données, configurer un projet Maven, implémenter la couche DAO pour gérer les livres, et afficher dynamiquement la liste des livres via une servlet. Les instructions incluent la création de tables, l'ajout de dépendances, et la mise en place de classes Java pour l'accès aux données.

Transféré par

chaima.hamdaoui101
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
25 vues8 pages

TP 6

Ce document présente un TP sur le développement d'une application de gestion de livres utilisant JSP, Servlet et JPA dans un environnement JEE. Il décrit les étapes pour créer une base de données, configurer un projet Maven, implémenter la couche DAO pour gérer les livres, et afficher dynamiquement la liste des livres via une servlet. Les instructions incluent la création de tables, l'ajout de dépendances, et la mise en place de classes Java pour l'accès aux données.

Transféré par

chaima.hamdaoui101
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

U NIVERSIT É DE J ENDOUBA

I NSTITUT S UP ÉRIEUR DE L’I NFORMATIQUE DU K EF

TP : JSP, S ERVLET ET JPA (1/2)

Matière : Technologie JEE Niveau : 2eme LSI


Responsable : Mahran Farhat A U : 2022 / 2023

Cette manip est développée en utilisant Intellij Idea, mais vous pouvez la produire en utilisant tout
IDE qui supporte Maven.
Pour le développement de cette manip, nous supposons que vous avez réussit les TP précédents.
Le but de ce support est de vous permettre implémenter la partie DAO (Data access object) afin de
compléter les fonctionnalités nécessaires pour la gestions des livres.
Notre objectif est de développer les fonctionnalités suivantes :
1. consultation de la liste des livres
2. Suppression des livres : lorsque l’utilisateur clique sur le bouton de suppression le livre en
question sera supprimé.
3. Modification des livres : lorsque l’utilisateur clique sur le bouton de modification, un formu-
laire de modification sera affiché afin de permettre à l’utilisateur de modifier les détails du
livre.

Partie 1 : Création et configuration de la base de données

1. Créer une base de données nommée tpjpa


2. Se connecter à la base de données et créer la table livre et remplisser cette table en utilisant le
block suivant :

create table livre (


ID bigint not null auto_increment,
TITRE varchar(255) not null,
AUTEUR varchar(30) not null,
EDITEUR varchar(30) not null,
PRIX float not null,
primary key (ID)
) ENGINE=InnoDB;

INSERT INTO livre(id,titre,auteur,editeur,prix) VALUES (1,’Java’,


’John Doe’, ’Thomas Edition’, 100);
INSERT INTO livre(id,titre,auteur,editeur,prix) VALUES (2,’C++’,
’John Doe’, ’Thomas Edition’, 100);
INSERT INTO livre(id,titre,auteur,editeur,prix) VALUES (3,’C#’,
’John Doe’, ’Thomas Edition’, 100);
INSERT INTO livre(id,titre,auteur,editeur,prix) VALUES (4,’PHP’,
’John Doe’, ’Thomas Edition’, 100);

1
INSERT INTO livre(id,titre,auteur,editeur,prix) VALUES (5,’Python’,
’John Doe’, ’Thomas Edition’, 100);
INSERT INTO livre(id,titre,auteur,editeur,prix) VALUES (6,’Ruby’,
’John Doe’, ’Thomas Edition’, 100);
INSERT INTO livre(id,titre,auteur,editeur,prix) VALUES (7,’Perl’,
’John Doe’, ’Thomas Edition’, 100);

COMMIT WORK;

Partie 2 : configuration de votre projet JEE afin de d’ajouter les fichiers de configuration et
les dépendances nécessaires pour le développement de la partie DAO.

1. Ajouter à votre fichier de configuration [Link] les dépendances suivantes :

<!-- dépendance de JPA -->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>

<dependency>
<groupId>[Link]</groupId>
<artifactId>eclipselink</artifactId>
<version>2.7.8</version>
</dependency>

2. Créer un dossier nommé META-INF dans le dossier resources. Ensuite créer un fichier
nommé [Link] dans e dossier META-INF.
3. Modifier le code de votre fichier de configuration afin d’ajouter les paramètres de connexion à
votre base de données et les informations de mise en correspondance ( classes –¿ tables ). Le
contenu de fichier [Link] est le suivant :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>


<persistence xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]
version="2.2">
<persistence-unit name="testjpa">

<class>[Link]</class>
<properties>
<property name="[Link]"
value="jdbc:mysql://localhost:3306/tpjpa?useSSL=false"/>
<property name="[Link]"
value="[Link]"/>

2
<!-- <property name="[Link]-generation"
value="drop-and-create-tables"/>
<property name="[Link]-mode"
value="database"/> -->
<property name="[Link]" value="root"/>
<property name="[Link]"
value="Admin??2022??"/>
</properties>
</persistence-unit>
</persistence>

4. une fois que vous avez configurer correctement votre projet. La structure de votre projet doit
correspondre à la figure suivante :

Partie 3 : Création de la couche DAO (Data Access Object). Notre objectif est de créer une
classe qui encapsule les différents traitements nécessaire pour le développement de notre mo-
dule de gestion des livres.

1. Modifier le code de la classe [Link] afin d’ajouter les informations de mise en correspon-
dance avec la table livre créée dans la base de données. Le code de cette classe doit être le
suivant :

package [Link];

import [Link].*;
import [Link];

@Entity

3
@Table(name = "livre")
public class Livre implements Serializable {
@Id
@GeneratedValue(strategy = [Link])
@Column(name = "id", nullable = false)
public Long isbn;
public String titre;
public String auteur;
public String editeur;
public double prix;

public Livre() {
}

public Livre(Long isbn,String titre, String auteur, String


editeur, double prix) {
[Link] = isbn;
[Link] = titre;
[Link] = auteur;
[Link] = editeur;
[Link] = prix;
}

public Long getIsbn() {


return isbn;
}

public void setIsbn(Long isbn) {


[Link] = isbn;
}

public String getTitre() {


return titre;
}

public void setTitre(String titre) {


[Link] = titre;
}

public String getAuteur() {


return auteur;
}

public void setAuteur(String auteur) {


[Link] = auteur;
}

public String getEditeur() {


return editeur;
}

4
public void setEditeur(String editeur) {
[Link] = editeur;
}

public double getPrix() {


return prix;
}

public void setPrix(double prix) {


[Link] = prix;
}

@Override
public String toString() {
return "Livre{" +
"isbn=’" + isbn + ’\’’ +
", titre=’" + titre + ’\’’ +
", auteur=’" + auteur + ’\’’ +
", editeur=’" + editeur + ’\’’ +
", prix=" + prix +
’}’;
}
}

2. Créer un package nommé dao dans le package [Link].


3. Créer une classe nommé DaoLivre dans le package dao. Le code de la classe DaoLivre doit
être le suivant :

package [Link];

import [Link];

import [Link];
import [Link];
import [Link];
import [Link];

public class DaoLivre {

private EntityManagerFactory emf;


private EntityManager em;

public void open() {


emf = [Link]("testjpa");
em = [Link]();
}
public void close() {
[Link]();
[Link]();
}

5
public void create(Livre livre) {
[Link]().begin();
[Link](livre);
[Link]().commit();
}

public Livre get(Long isbn) {


[Link]().begin();
Livre livre = [Link]([Link], isbn);
[Link]().commit();
return livre;
}

public void update(Livre livre) {


[Link]().begin();
[Link](livre);
[Link]().commit();
}

public void delete(Long isbn) {


Livre livre = [Link]([Link], isbn);
[Link]().begin();
[Link](livre);
[Link]().commit();
}

public List<Livre> getAll() {


[Link]().begin();
List<Livre> livres = [Link]("select l from Livre l",
[Link]).getResultList();
[Link]().commit();
return livres;
}
}

Partie 4 : Consulter la liste des livres. Nous comptons afficher une liste dynamique des livres.
Le couche DAO sera utilisée afin de récupérer les documents à partir de la base de données.

1. Modifier le code de la servlet ManageBooks afin de remplacer la liste statique des documents
par une liste dynamique qui sera récupérer à partir de la base de données à travers la couche
DAO. Le code de cette classe doit être le suivant :

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

6
import [Link];
import [Link];
import [Link];
import [Link];

@WebServlet("/manageBooks")
public class ManageBooks extends HttpServlet {
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse
resp) throws ServletException, IOException {
// get books from database

/* List<Livre> bookList = new ArrayList<>();


[Link](new Livre("LC01","Java", "John Doe", "Thomas
Edition", 100));
[Link](new Livre("LC02","C++", "John Doe", "Thomas
Edition", 100));
[Link](new Livre("LC03","Python", "John Doe", "Thomas
Edition", 100));
[Link](new Livre("LC04","C#", "John Doe", "Thomas
Edition", 100));
[Link](new Livre("LC05","PHP", "John Doe", "Thomas
Edition", 100));
[Link](new Livre("LC06","PYTHON 2", "John Doe", "Thomas
Edition", 100));
*/

DaoLivre agent = new DaoLivre();


[Link]();
List<Livre> bookList = [Link]();
[Link]();

// set books to request object and forward to JSP


[Link]("bookList", bookList);
[Link]("[Link]").forward(req,
resp);
}
}

7
Bonne Chance

Vous aimerez peut-être aussi