This commit is contained in:
tuanvu
2025-09-29 19:10:48 +02:00
parent 211a168bd0
commit 58470b6e46
14 changed files with 261 additions and 126 deletions

204
pom.xml
View File

@@ -1,102 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>test</groupId> <groupId>test</groupId>
<packaging>war</packaging> <packaging>war</packaging>
<artifactId>testjpa</artifactId> <artifactId>testjpa</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<properties> <properties>
<maven.compiler.source>11</maven.compiler.source> <maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target> <maven.compiler.target>11</maven.compiler.target>
<org.mapstruct.version>1.6.3</org.mapstruct.version> <org.mapstruct.version>1.6.3</org.mapstruct.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.mapstruct</groupId> <groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId> <artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version> <version>1.6.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.hibernate</groupId> <groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId> <artifactId>hibernate-core</artifactId>
<version>6.2.7.Final</version> <version>6.2.7.Final</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>jakarta.servlet</groupId> <groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId> <artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version> <version>5.0.0</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId> <artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version> <version>1.7.30</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.hsqldb</groupId> <groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId> <artifactId>hsqldb</artifactId>
<version>2.7.2</version> <version>2.7.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.mysql</groupId> <groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-j</artifactId>
<version>8.1.0</version> <version>8.1.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.42</version> <version>1.18.42</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<plugin> <plugin>
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-maven-plugin --> <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-maven-plugin -->
<groupId>org.eclipse.jetty</groupId> <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId> <artifactId>jetty-maven-plugin</artifactId>
<version>11.0.16</version> <version>11.0.16</version>
<configuration> <configuration>
<webApp> <webApp>
<contextPath>/</contextPath> <contextPath>/</contextPath>
</webApp> </webApp>
<httpConnector> <httpConnector>
<port>8080</port> <port>8080</port>
</httpConnector> </httpConnector>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId> <artifactId>maven-war-plugin</artifactId>
<version>3.4.0</version> <version>3.4.0</version>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version> <version>3.11.0</version>
<configuration> <configuration>
<source>11</source> <!-- depending on your project --> <source>11</source> <!-- depending on your project -->
<target>11</target> <!-- depending on your project --> <target>11</target> <!-- depending on your project -->
<annotationProcessorPaths> <annotationProcessorPaths>
<path> <path>
<groupId>org.mapstruct</groupId> <groupId>org.projectlombok</groupId>
<artifactId>mapstruct-processor</artifactId> <artifactId>lombok</artifactId>
<version>${org.mapstruct.version}</version> <version>1.18.42</version>
</path> </path>
<path> <path>
<groupId>org.projectlombok</groupId> <groupId>org.mapstruct</groupId>
<artifactId>lombok</artifactId> <artifactId>mapstruct-processor</artifactId>
<version>1.18.42</version> <version>1.6.3</version>
</path> </path>
<!-- other annotation processors --> <!-- other annotation processors -->
</annotationProcessorPaths> </annotationProcessorPaths>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

View File

@@ -0,0 +1,13 @@
package DTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class QuestionDTO {
private int id;
private String question;
private String reponse;
}

View File

@@ -0,0 +1,12 @@
package DTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class QuizzDTO {
private int id;
}

View File

@@ -0,0 +1,10 @@
package DTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class ReponseDTO {
}

View File

@@ -0,0 +1,10 @@
package DTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class SessionDTO {
}

View File

@@ -0,0 +1,13 @@
package DTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class UtilisateurDTO {
private int id;
private String name;
private String email;
}

View File

@@ -0,0 +1,12 @@
package Mapper;
import DTO.QuestionDTO;
import metier.Question;
import org.mapstruct.factory.Mappers;
public interface QuestionMapper {
QuestionMapper INSTANCE = Mappers.getMapper( QuestionMapper.class );
QuestionDTO toDTO(Question question);
Question toEntity(QuestionDTO questionDTO);
}

View File

@@ -0,0 +1,12 @@
package Mapper;
import DTO.QuizzDTO;
import metier.Quizz;
import org.mapstruct.factory.Mappers;
public interface QuizzMapper {
QuizzMapper INSTANCE = Mappers.getMapper( QuizzMapper.class );
QuizzDTO toDTO(Quizz quizz);
Quizz toEntity(QuizzDTO quizzDTO);
}

View File

@@ -0,0 +1,12 @@
package Mapper;
import DTO.ReponseDTO;
import metier.Reponse;
import org.mapstruct.factory.Mappers;
public interface ReponseMapper {
ReponseMapper INSTANCE = Mappers.getMapper( ReponseMapper.class );
Reponse toEntity(ReponseDTO reponseDTO);
ReponseDTO toDTO(Reponse reponse);
}

View File

@@ -0,0 +1,13 @@
package Mapper;
import DTO.SessionDTO;
import metier.Session;
import metier.Utilisateur;
import org.mapstruct.factory.Mappers;
public interface SessionMapper {
SessionMapper INSTANCE = Mappers.getMapper( SessionMapper.class );
SessionDTO toDTO(Utilisateur utilisateur);
Session toEntity(SessionDTO sessionDTO);
}

View File

@@ -0,0 +1,19 @@
package Mapper;
import DTO.UtilisateurDTO;
import metier.Utilisateur;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface UtilisateurMapper {
UtilisateurMapper INSTANCE = Mappers.getMapper(UtilisateurMapper.class);
UtilisateurDTO toDTO(Utilisateur utilisateur);
Utilisateur toEntity(UtilisateurDTO dto);
List<UtilisateurDTO> toDTOs(List<Utilisateur> utilisateurs);
List<Utilisateur> toEntitys(List<UtilisateurDTO> dtos);
}

View File

@@ -30,5 +30,4 @@ public class Utilisateur implements Serializable {
@OneToMany(mappedBy = "utilisateur") @OneToMany(mappedBy = "utilisateur")
private List<Quizz> quizzs; private List<Quizz> quizzs;
} }

View File

@@ -4,50 +4,58 @@ import java.io.IOException;
import java.util.List; import java.util.List;
import DAO.*; import DAO.*;
import DTO.UtilisateurDTO;
import Mapper.UtilisateurMapper;
import metier.*; import metier.*;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.mapstruct.factory.Mappers;
@WebServlet(name="Show", urlPatterns={"/Show"}) @WebServlet(name = "Show", urlPatterns = {"/Show"})
public class Show extends HttpServlet { public class Show extends HttpServlet {
Utilisateur u;
QuizzDAO quizzDAO = new QuizzDAO(); QuizzDAO quizzDAO = new QuizzDAO();
SessionDAO sessionDAO = new SessionDAO(); SessionDAO sessionDAO = new SessionDAO();
UtilisateurDAO utilisateurDAO = new UtilisateurDAO(); UtilisateurDAO utilisateurDAO = new UtilisateurDAO();
UtilisateurMapper mapper_u = Mappers.getMapper(UtilisateurMapper.class);
@Override @Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html"); response.setContentType("text/html");
String result = "<!DOCTYPE html>"+ String result = "<!DOCTYPE html>" +
"<html>"+ "<html>" +
"<head>"+ "<head>" +
"<link rel=\"stylesheet\" type=\"text/css\" href=\""+request.getContextPath()+"/css/style.css\">"+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"" + request.getContextPath() + "/css/style.css\">" +
"</head>"+ "</head>" +
"<body>"; "<body>";
//UTILISATEUR //UTILISATEUR
List<Utilisateur> listUser = utilisateurDAO.findAll(); List<Utilisateur> listUser = utilisateurDAO.findAll();
result += "<H2>Utilisateurs :</H2>"; result += "<H2>Utilisateurs :</H2>";
result += result +=
"<table class=\"show\">"+ "<table class=\"show\">" +
"<thead class=\"show\">"+ "<thead class=\"show\">" +
"<tr>"+ "<tr>" +
"<th class=\"show\">ID</th><th class=\"show\">Nom</th><th class=\"show\">mail</th>"+ "<th class=\"show\">Nom</th><th class=\"show\">mail</th>" +
"</tr>"+ "</tr>" +
"</thead>"+ "</thead>" +
"<tbody>"; "<tbody>";
for (Utilisateur u : listUser) { for (Utilisateur u : listUser) {
result+= UtilisateurDTO dto = mapper_u.toDTO(u);
"<tr>"+ result +=
"<th class=\"show\">"+u.getId()+"</th>"+"<th class=\"show\">"+u.getName()+"</th>"+"<th class=\"show\">"+u.getEmail()+"</th>"+ "<tr>" +
"</tr>"; "<th class=\"show\">" + dto.getName() + "</th>" + "<th class=\"show\">" + dto.getEmail() + "</th>" +
"</tr>";
System.out.println(u.getName()+dto.getEmail());
} }
result += result +=
"</tbody>"+ "</tbody>"+
@@ -67,7 +75,7 @@ public class Show extends HttpServlet {
result += "choix de réponse : <br/>"; result += "choix de réponse : <br/>";
result += question.getReponse().valHTML(); result += question.getReponse().valHTML();
result+= "Reponses corrects :<br/>"; result += "Reponses corrects :<br/>";
for (String reponse : question.getReponse().getReponses()) { for (String reponse : question.getReponse().getReponses()) {
result += reponse; result += reponse;
} }
@@ -87,7 +95,7 @@ public class Show extends HttpServlet {
"<tbody>"; "<tbody>";
for(Session session : listSession){ for(Session session : listSession){
result+= result+=
"<tr>"+ "<tr>"+
"<th class=\"show\">"+session.getId()+"</th>"+"<th class=\"show\">"+session.getTheme()+"</th>"+"<th class=\"show\">"+session.getCodePIN()+"</th>"; "<th class=\"show\">"+session.getId()+"</th>"+"<th class=\"show\">"+session.getTheme()+"</th>"+"<th class=\"show\">"+session.getCodePIN()+"</th>";
String quizzsID = ""; String quizzsID = "";
@@ -101,7 +109,7 @@ public class Show extends HttpServlet {
result += "<th class=\"show\">"+quizzsID+"</th>"+"<th class=\"show\">"+UtilisateurID+"</th>"; result += "<th class=\"show\">"+quizzsID+"</th>"+"<th class=\"show\">"+UtilisateurID+"</th>";
result+="</tr>"; result+="</tr>";
} }
result += result +=
"</tbody>"+ "</tbody>"+
"</table>"; "</table>";

View File

@@ -4,12 +4,14 @@ import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import DAO.UtilisateurDAO; import DAO.UtilisateurDAO;
import Mapper.UtilisateurMapper;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import metier.Utilisateur; import metier.Utilisateur;
import org.mapstruct.factory.Mappers;
@WebServlet(name = "userinfo", urlPatterns = {"/UserInfo"}) @WebServlet(name = "userinfo", urlPatterns = {"/UserInfo"})
public class UserInfo extends HttpServlet { public class UserInfo extends HttpServlet {