Merge pull request #7 from IUTInfoAix-R202-2022/modele_sql

Simplification du modèle relationnel
This commit is contained in:
Thomas R 2022-06-04 21:22:01 +02:00 committed by GitHub
commit f067497d70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 67 additions and 118 deletions

View File

@ -1,6 +1,6 @@
package fr.univ_amu.iut.dao; package fr.univ_amu.iut.dao;
import fr.univ_amu.iut.model.Usages; import fr.univ_amu.iut.model.Usage;
public interface DAOUsage extends DAO<Usages>{ public interface DAOUsage extends DAO<Usage>{
} }

View File

@ -1,28 +0,0 @@
package fr.univ_amu.iut.dao.jpa;
import fr.univ_amu.iut.dao.DAO;
import fr.univ_amu.iut.model.TypeActeur;
import jakarta.persistence.EntityManager;
import jakarta.persistence.TypedQuery;
import java.util.List;
public class DAOTypeActeurJPA extends DAOBaseClassJPA<TypeActeur> implements DAO<TypeActeur> {
public DAOTypeActeurJPA(EntityManager entityManager) {
super(entityManager);
}
@Override
public List<TypeActeur> findAll() {
TypedQuery<TypeActeur> query = entityManager.createNamedQuery("TypeActeur.findAll", TypeActeur.class);
return query.getResultList();
}
@Override
public TypeActeur getById(int id) {
TypedQuery<TypeActeur> query = entityManager.createNamedQuery("TypeActeur.findById", TypeActeur.class);
query.setParameter("numEt", id);
return query.getSingleResult();
}
}

View File

@ -1,27 +1,27 @@
package fr.univ_amu.iut.dao.jpa; package fr.univ_amu.iut.dao.jpa;
import fr.univ_amu.iut.dao.DAOUsage; import fr.univ_amu.iut.dao.DAOUsage;
import fr.univ_amu.iut.model.Usages; import fr.univ_amu.iut.model.Usage;
import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManager;
import jakarta.persistence.TypedQuery; import jakarta.persistence.TypedQuery;
import java.util.List; import java.util.List;
public class DAOUsageJPA extends DAOBaseClassJPA<Usages> implements DAOUsage { public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
public DAOUsageJPA(EntityManager entityManager) { public DAOUsageJPA(EntityManager entityManager) {
super(entityManager); super(entityManager);
} }
@Override @Override
public List<Usages> findAll() { public List<Usage> findAll() {
TypedQuery<Usages> query = entityManager.createNamedQuery("Usage.findAll", Usages.class); TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findAll", Usage.class);
return query.getResultList(); return query.getResultList();
} }
@Override @Override
public Usages getById(int id) { public Usage getById(int id) {
TypedQuery<Usages> query = entityManager.createNamedQuery("Usage.findById", Usages.class); TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findById", Usage.class);
query.setParameter("numEt", id); query.setParameter("numEt", id);
return query.getSingleResult(); return query.getSingleResult();
} }

View File

@ -12,11 +12,11 @@ public class Acteur {
@GeneratedValue @GeneratedValue
int id; int id;
String type;
String identite; String identite;
public Acteur(String type, String identite) { String type;
public Acteur(String identite, String type) {
this.type = type; this.type = type;
this.identite = identite; this.identite = identite;
} }

View File

@ -1,9 +1,6 @@
package fr.univ_amu.iut.model; package fr.univ_amu.iut.model;
import jakarta.persistence.Entity; import jakarta.persistence.*;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import jakarta.persistence.Transient;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -11,7 +8,7 @@ import java.util.List;
@Entity @Entity
public class Discipline { public class Discipline {
private static List<Discipline> INSTANCES = new ArrayList<>(); private static final List<Discipline> INSTANCES = new ArrayList<>();
@Transient @Transient
public static Discipline Toutes = new Discipline("Toutes disciplines"); public static Discipline Toutes = new Discipline("Toutes disciplines");
@ -33,6 +30,8 @@ public class Discipline {
@Id @Id
@GeneratedValue @GeneratedValue
int id; int id;
@Column(unique = true)
String nom; String nom;
public Discipline() { public Discipline() {

View File

@ -50,6 +50,8 @@ public class RegionAcademique {
@Id @Id
@GeneratedValue @GeneratedValue
int id; int id;
@Column(unique = true)
String nom; String nom;
public RegionAcademique() { public RegionAcademique() {

View File

@ -2,6 +2,7 @@ package fr.univ_amu.iut.model;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
@NamedQueries({ @NamedQueries({
@ -16,10 +17,24 @@ public class Ressource {
String nomRessource; String nomRessource;
String typeRessource;
URL lienRessource; URL lienRessource;
public Ressource(URL lienRessource, String nomRessource, String typeRessource) { String typeRessource;
private static URL convertUrl(String url){
try{
return new URL(url);
}catch(MalformedURLException e){
e.printStackTrace();
return null;
}
}
public Ressource(String nomRessource, String lienRessource, String typeRessource) {
this(nomRessource, convertUrl(lienRessource), typeRessource);
}
public Ressource(String nomRessource, URL lienRessource, String typeRessource) {
this.nomRessource = nomRessource;
this.typeRessource = typeRessource; this.typeRessource = typeRessource;
this.lienRessource = lienRessource; this.lienRessource = lienRessource;
} }

View File

@ -1,12 +1,18 @@
package fr.univ_amu.iut.model; package fr.univ_amu.iut.model;
import jakarta.persistence.Entity; import jakarta.persistence.*;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id; import java.util.ArrayList;
import jakarta.persistence.Transient; import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@Entity @Entity
public class Thematique { public class Thematique {
private final static List<Thematique> INSTANCES = new ArrayList<>();
@Transient @Transient
public static Thematique ClasseInversee= new Thematique("Classe inversée"); public static Thematique ClasseInversee= new Thematique("Classe inversée");
@Transient @Transient
@ -55,6 +61,8 @@ public class Thematique {
@Id @Id
@GeneratedValue @GeneratedValue
int id; int id;
@Column(unique = true)
String nom; String nom;
public String getNom() { public String getNom() {
@ -63,11 +71,15 @@ public class Thematique {
public Thematique(String nom) { public Thematique(String nom) {
this.nom = nom; this.nom = nom;
INSTANCES.add(this);
} }
public Thematique() { public Thematique() {
} }
public static List<Thematique> toutes(){
return INSTANCES;
}
@Override @Override
public String toString() { public String toString() {

View File

@ -1,31 +0,0 @@
package fr.univ_amu.iut.model;
import jakarta.persistence.*;
@NamedQueries({
@NamedQuery(name = "TypeActeur.findAll", query = "SELECT p FROM TypeActeur p"),
@NamedQuery(name = "TypeActeur.findById", query = "SELECT p FROM TypeActeur p WHERE p.id = :id"),
})
@Entity
public class TypeActeur {
@Id
@GeneratedValue
int id;
String nom;
public TypeActeur(String nom) {
this.nom = nom;
}
public TypeActeur() {
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
}

View File

@ -1,23 +0,0 @@
package fr.univ_amu.iut.model;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
@Entity
public class TypeRessource {
@Id
@GeneratedValue
int id;
String nom;
public TypeRessource(String nom) {
this.nom = nom;
}
public TypeRessource() {}
public String getNom() {
return nom;
}
}

View File

@ -6,11 +6,13 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
@NamedQueries({ @NamedQueries({
@NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usages p"), @NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"),
@NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usages p WHERE p.id = :id"), @NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usage p WHERE p.id = :id"),
}) })
@Entity @Entity
public class Usages { @Table(name="\"USAGE\"")
public class Usage {
@Id @Id
@GeneratedValue @GeneratedValue
int id; int id;
@ -34,12 +36,12 @@ public class Usages {
@OneToMany(cascade = CascadeType.ALL) @OneToMany(cascade = CascadeType.ALL)
List<Ressource> ressources = new ArrayList<>(); List<Ressource> ressources = new ArrayList<>();
@OneToOne(cascade = CascadeType.ALL) @OneToMany(cascade = CascadeType.ALL)
Acteur acteur; List<Acteur> acteurs = new ArrayList<>();
String commentaire; String commentaire;
public Usages() { public Usage() {
} }
public String getNom() { public String getNom() {
@ -98,12 +100,12 @@ public class Usages {
this.ressources.add(ressource); this.ressources.add(ressource);
} }
public Acteur getActeur() { public List<Acteur> getActeurs() {
return acteur; return acteurs;
} }
public void setActeur(Acteur acteur) { public void addActeur(Acteur acteur) {
this.acteur = acteur; this.acteurs.add(acteur);
} }
public String getCommentaire() { public String getCommentaire() {
@ -126,7 +128,7 @@ public class Usages {
", niveau=" + niveau + ", niveau=" + niveau +
", academie=" + academie + ", academie=" + academie +
", ressources=" + ressources + ", ressources=" + ressources +
", acteur=" + acteur + ", acteurs=" + acteurs +
", commentaire='" + commentaire + '\'' + ", commentaire='" + commentaire + '\'' +
'}'; '}';
} }

View File

@ -24,7 +24,7 @@ public class DAORessourceTest implements DAORessource {
} catch (MalformedURLException e) { } catch (MalformedURLException e) {
e.printStackTrace(); e.printStackTrace();
} }
Ressource ressource = new Ressource(url, "google", "site web"); Ressource ressource = new Ressource("google", url, "site web");
liste.add(ressource); liste.add(ressource);
} }
return liste; return liste;

View File

@ -8,8 +8,9 @@
<properties> <properties>
<!-- database connection properties --> <!-- database connection properties -->
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/devapp"/> <property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/devapp"/>
<property name="jakarta.persistence.jdbc.user" value="root"/> <property name="jakarta.persistence.jdbc.user" value="devapp"/>
<property name="jakarta.persistence.jdbc.password" value="azerty123"/> <property name="jakarta.persistence.jdbc.password" value="7kPoWBgoV5ahygxyXYGzaL"/>
<!-- Nous ne devrions pas commit le mot de passe dans le dépot, mais... je ne pense pas que le projet ne respecte la moindre règle de sécurité de toute facon (pas d'architecture trois tiers)-->
<property name="eclipselink.ddl-generation.output-mode" value="database"/> <property name="eclipselink.ddl-generation.output-mode" value="database"/>
<property name="eclipselink.ddl-generation" value="create-tables"/> <property name="eclipselink.ddl-generation" value="create-tables"/>