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"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<packaging>war</packaging>
<artifactId>testjpa</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<org.mapstruct.version>1.6.3</org.mapstruct.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${org.mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.2.7.Final</version>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-maven-plugin -->
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>11.0.16</version>
<configuration>
<webApp>
<contextPath>/</contextPath>
</webApp>
<httpConnector>
<port>8080</port>
</httpConnector>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source> <!-- depending on your project -->
<target>11</target> <!-- depending on your project -->
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${org.mapstruct.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
</path>
<!-- other annotation processors -->
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<packaging>war</packaging>
<artifactId>testjpa</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<org.mapstruct.version>1.6.3</org.mapstruct.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.2.7.Final</version>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.1.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-maven-plugin -->
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>11.0.16</version>
<configuration>
<webApp>
<contextPath>/</contextPath>
</webApp>
<httpConnector>
<port>8080</port>
</httpConnector>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source> <!-- depending on your project -->
<target>11</target> <!-- depending on your project -->
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.42</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.6.3</version>
</path>
<!-- other annotation processors -->
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</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")
private List<Quizz> quizzs;
}

View File

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

View File

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