DAO JPA ajouté + DAO JDBC supprimé
This commit is contained in:
parent
b4ddabd119
commit
e3c09ef4ed
@ -31,7 +31,7 @@ public interface DAO<T> {
|
|||||||
*
|
*
|
||||||
* @param obj Objet à insérer dans la base
|
* @param obj Objet à insérer dans la base
|
||||||
*/
|
*/
|
||||||
T insert(T obj);
|
boolean insert(T obj);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permet de mettre à jour les données d'un tuple dans la base à partir d'un
|
* Permet de mettre à jour les données d'un tuple dans la base à partir d'un
|
||||||
|
@ -3,4 +3,6 @@ package fr.univ_amu.iut.dao;
|
|||||||
import fr.univ_amu.iut.model.Academie;
|
import fr.univ_amu.iut.model.Academie;
|
||||||
|
|
||||||
public interface DAOAcademie extends DAO<Academie>{
|
public interface DAOAcademie extends DAO<Academie>{
|
||||||
|
|
||||||
|
Academie getByCode(String code);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
package fr.univ_amu.iut.dao;
|
package fr.univ_amu.iut.dao;
|
||||||
|
|
||||||
public interface DAODiscipline extends DAO<DAODiscipline>{
|
import fr.univ_amu.iut.model.Discipline;
|
||||||
|
|
||||||
|
public interface DAODiscipline extends DAO<Discipline>{
|
||||||
}
|
}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
package fr.univ_amu.iut.dao;
|
|
||||||
|
|
||||||
import fr.univ_amu.iut.model.TypeActeur;
|
|
||||||
|
|
||||||
public interface DAOTypeActeur extends DAO<TypeActeur>{
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
package fr.univ_amu.iut.dao;
|
|
||||||
|
|
||||||
import fr.univ_amu.iut.model.TypeRessource;
|
|
||||||
|
|
||||||
public interface DAOTypeRessource extends DAO<TypeRessource> {
|
|
||||||
}
|
|
@ -9,7 +9,5 @@ public interface DAOFactory {
|
|||||||
DAORegionAcademique createDAORegionAcademique();
|
DAORegionAcademique createDAORegionAcademique();
|
||||||
DAORessource createDAORessource();
|
DAORessource createDAORessource();
|
||||||
DAOThematique createDAOThematique();
|
DAOThematique createDAOThematique();
|
||||||
DAOTypeActeur createDAOTypeActeur();
|
|
||||||
DAOTypeRessource createDAOTypeRessource();
|
|
||||||
DAOUsage createDAOUsage();
|
DAOUsage createDAOUsage();
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
package fr.univ_amu.iut.dao.factory;
|
package fr.univ_amu.iut.dao.factory;
|
||||||
|
|
||||||
import fr.univ_amu.iut.dao.jdbc.DAOFactoryJDBC;
|
|
||||||
import fr.univ_amu.iut.dao.jpa.DAOFactoryJPA;
|
import fr.univ_amu.iut.dao.jpa.DAOFactoryJPA;
|
||||||
|
|
||||||
public class DAOFactoryProducer {
|
public class DAOFactoryProducer {
|
||||||
public static DAOFactory getFactory(DAOType type) {
|
public static DAOFactory getFactory(DAOType type) {
|
||||||
return switch (type){
|
return switch (type){
|
||||||
case JPA -> new DAOFactoryJPA();
|
case JPA -> new DAOFactoryJPA();
|
||||||
case JDBC -> new DAOFactoryJDBC();
|
|
||||||
default -> throw new IllegalArgumentException();
|
default -> throw new IllegalArgumentException();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package fr.univ_amu.iut.dao.factory;
|
package fr.univ_amu.iut.dao.factory;
|
||||||
|
|
||||||
public enum DAOType {
|
public enum DAOType {
|
||||||
JPA,
|
JPA
|
||||||
JDBC
|
|
||||||
}
|
}
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
package fr.univ_amu.iut.dao.jdbc;
|
|
||||||
|
|
||||||
import fr.univ_amu.iut.dao.*;
|
|
||||||
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
|
||||||
|
|
||||||
public class DAOFactoryJDBC implements DAOFactory {
|
|
||||||
@Override
|
|
||||||
public DAOAcademie createDAOAcademie() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAOActeur createDAOActeur() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAODiscipline createDAODiscipline() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAORegionAcademique createDAORegionAcademique() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAORessource createDAORessource() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAOThematique createDAOThematique() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAOTypeActeur createDAOTypeActeur() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAOTypeRessource createDAOTypeRessource() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAOUsage createDAOUsage() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,52 +0,0 @@
|
|||||||
package fr.univ_amu.iut.dao.jdbc;
|
|
||||||
|
|
||||||
import java.sql.SQLException;
|
|
||||||
|
|
||||||
public class DataAccessException extends RuntimeException {
|
|
||||||
|
|
||||||
public int errorCode;
|
|
||||||
public String state;
|
|
||||||
|
|
||||||
public DataAccessException() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataAccessException(String message) {
|
|
||||||
super(message);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataAccessException(String message, Throwable cause) {
|
|
||||||
super(message, cause);
|
|
||||||
getCodeAndState(cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataAccessException(Throwable cause) {
|
|
||||||
super(cause);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DataAccessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
|
|
||||||
super(message, cause, enableSuppression, writableStackTrace);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void getCodeAndState(Throwable cause) {
|
|
||||||
if (cause instanceof SQLException) {
|
|
||||||
errorCode = ((SQLException) cause).getErrorCode();
|
|
||||||
state = ((SQLException) cause).getSQLState();
|
|
||||||
} else {
|
|
||||||
errorCode = -1;
|
|
||||||
state = cause.getMessage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getErrorCode() {
|
|
||||||
return errorCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getState() {
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return getClass().getName() + '[' + errorCode + ',' + state + "]: " + getLocalizedMessage();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,78 +0,0 @@
|
|||||||
package fr.univ_amu.iut.dao.jdbc;
|
|
||||||
|
|
||||||
import fr.univ_amu.iut.dao.jdbc.rowmappers.RowMapper;
|
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
public class ResultSetIterator<T> implements Iterator<T> {
|
|
||||||
|
|
||||||
private ResultSet rs;
|
|
||||||
private PreparedStatement ps;
|
|
||||||
private Connection connection;
|
|
||||||
private RowMapper<T> rowMapper;
|
|
||||||
private String sql;
|
|
||||||
|
|
||||||
public ResultSetIterator(Connection connection, String sql, RowMapper<T> rowMapper) {
|
|
||||||
assert connection != null;
|
|
||||||
assert sql != null;
|
|
||||||
this.connection = connection;
|
|
||||||
this.sql = sql;
|
|
||||||
this.rowMapper = rowMapper;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void init() {
|
|
||||||
try {
|
|
||||||
ps = connection.prepareStatement(sql);
|
|
||||||
rs = ps.executeQuery();
|
|
||||||
|
|
||||||
} catch (SQLException e) {
|
|
||||||
close();
|
|
||||||
throw new DataAccessException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasNext() {
|
|
||||||
if (ps == null) {
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
boolean hasMore = rs.next();
|
|
||||||
if (!hasMore) {
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
return hasMore;
|
|
||||||
} catch (SQLException e) {
|
|
||||||
close();
|
|
||||||
throw new DataAccessException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void close() {
|
|
||||||
try {
|
|
||||||
rs.close();
|
|
||||||
try {
|
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
|
||||||
//nothing we can do here
|
|
||||||
}
|
|
||||||
} catch (SQLException e) {
|
|
||||||
//nothing we can do here
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public T next() {
|
|
||||||
try {
|
|
||||||
return rowMapper.mapRow(rs, 1);
|
|
||||||
} catch (SQLException e) {
|
|
||||||
close();
|
|
||||||
throw new DataAccessException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
package fr.univ_amu.iut.dao.jdbc;
|
|
||||||
|
|
||||||
import fr.univ_amu.iut.dao.jdbc.rowmappers.RowMapper;
|
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.util.Spliterators;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
import java.util.stream.StreamSupport;
|
|
||||||
|
|
||||||
public class ResultSetStreamer {
|
|
||||||
public static <T> Stream<T> stream(final Connection connection,
|
|
||||||
final String sql,
|
|
||||||
final RowMapper<T> rowMapper) {
|
|
||||||
return StreamSupport
|
|
||||||
.stream(Spliterators.spliteratorUnknownSize(
|
|
||||||
new ResultSetIterator<>(connection, sql, rowMapper), 0), false);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
package fr.univ_amu.iut.dao.jdbc.rowmappers;
|
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
|
|
||||||
public interface RowMapper<T> {
|
|
||||||
T mapRow(ResultSet rs, int rowNum) throws SQLException;
|
|
||||||
}
|
|
34
src/main/java/fr/univ_amu/iut/dao/jpa/DAOAcademieJPA.java
Normal file
34
src/main/java/fr/univ_amu/iut/dao/jpa/DAOAcademieJPA.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAOAcademie;
|
||||||
|
import fr.univ_amu.iut.model.Academie;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
// NOT JPA. No idea how to achieve it else
|
||||||
|
public class DAOAcademieJPA extends DAOBaseClassJPA<Academie> implements DAOAcademie {
|
||||||
|
|
||||||
|
public DAOAcademieJPA(EntityManager entityManager) {
|
||||||
|
super(entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Academie> findAll() {
|
||||||
|
TypedQuery<Academie> query = entityManager.createNamedQuery("Academie.findAll", Academie.class);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Academie getById(int id) {
|
||||||
|
throw new UnsupportedOperationException("use getByCode()");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Academie getByCode(String code) {
|
||||||
|
TypedQuery<Academie> query = entityManager.createNamedQuery("Academie.findByCode", Academie.class);
|
||||||
|
query.setParameter("acaCode", code);
|
||||||
|
return query.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOActeurJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOActeurJPA.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAOActeur;
|
||||||
|
import fr.univ_amu.iut.model.Acteur;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
// NOT JPA. No idea how to achieve it else
|
||||||
|
public class DAOActeurJPA extends DAOBaseClassJPA<Acteur> implements DAOActeur {
|
||||||
|
|
||||||
|
public DAOActeurJPA(EntityManager entityManager) {
|
||||||
|
super(entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Acteur> findAll() {
|
||||||
|
TypedQuery<Acteur> query = entityManager.createNamedQuery("Acteur.findAll", Acteur.class);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Acteur getById(int id) {
|
||||||
|
TypedQuery<Acteur> query = entityManager.createNamedQuery("Acteur.findById", Acteur.class);
|
||||||
|
query.setParameter("numEt", id);
|
||||||
|
return query.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
55
src/main/java/fr/univ_amu/iut/dao/jpa/DAOBaseClassJPA.java
Normal file
55
src/main/java/fr/univ_amu/iut/dao/jpa/DAOBaseClassJPA.java
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAO;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
|
||||||
|
|
||||||
|
// Helper class to reduce code duplication
|
||||||
|
public abstract class DAOBaseClassJPA<T> implements DAO<T> {
|
||||||
|
|
||||||
|
protected EntityManager entityManager;
|
||||||
|
|
||||||
|
public DAOBaseClassJPA(EntityManager entityManager) {
|
||||||
|
this.entityManager = entityManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean insert(T etudiant) {
|
||||||
|
try{
|
||||||
|
entityManager.getTransaction().begin();
|
||||||
|
entityManager.persist(etudiant);
|
||||||
|
entityManager.getTransaction().commit();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean update(T obj) {
|
||||||
|
try {
|
||||||
|
entityManager.getTransaction().begin();
|
||||||
|
entityManager.merge(obj);
|
||||||
|
entityManager.getTransaction().commit();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean delete(T obj) {
|
||||||
|
try {
|
||||||
|
entityManager.getTransaction().begin();
|
||||||
|
entityManager.remove(obj);
|
||||||
|
entityManager.getTransaction().commit();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAODisciplineJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAODisciplineJPA.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAODiscipline;
|
||||||
|
import fr.univ_amu.iut.model.Discipline;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
// NOT JPA. No idea how to achieve it else
|
||||||
|
public class DAODisciplineJPA extends DAOBaseClassJPA<Discipline> implements DAODiscipline {
|
||||||
|
|
||||||
|
public DAODisciplineJPA(EntityManager entityManager) {
|
||||||
|
super(entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Discipline> findAll() {
|
||||||
|
TypedQuery<Discipline> query = entityManager.createNamedQuery("Discipline.findAll", Discipline.class);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Discipline getById(int id) {
|
||||||
|
TypedQuery<Discipline> query = entityManager.createNamedQuery("Discipline.findById", Discipline.class);
|
||||||
|
query.setParameter("numEt", id);
|
||||||
|
return query.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
@ -2,51 +2,55 @@ package fr.univ_amu.iut.dao.jpa;
|
|||||||
|
|
||||||
import fr.univ_amu.iut.dao.*;
|
import fr.univ_amu.iut.dao.*;
|
||||||
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.EntityManagerFactory;
|
||||||
|
import jakarta.persistence.Persistence;
|
||||||
|
|
||||||
public class DAOFactoryJPA implements DAOFactory {
|
public class DAOFactoryJPA implements DAOFactory {
|
||||||
|
|
||||||
|
private EntityManager entityManager;
|
||||||
|
|
||||||
|
public EntityManager getEntityManager() {
|
||||||
|
if(entityManager == null){
|
||||||
|
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gestionUsagesPU");
|
||||||
|
entityManager = entityManagerFactory.createEntityManager();
|
||||||
|
}
|
||||||
|
return entityManager;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DAOAcademie createDAOAcademie() {
|
public DAOAcademie createDAOAcademie() {
|
||||||
return null;
|
return new DAOAcademieJPA(getEntityManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DAOActeur createDAOActeur() {
|
public DAOActeur createDAOActeur() {
|
||||||
return null;
|
return new DAOActeurJPA(getEntityManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DAODiscipline createDAODiscipline() {
|
public DAODiscipline createDAODiscipline() {
|
||||||
return null;
|
return new DAODisciplineJPA(getEntityManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DAORegionAcademique createDAORegionAcademique() {
|
public DAORegionAcademique createDAORegionAcademique() {
|
||||||
return null;
|
return new DAORegionAcademiqueJPA(getEntityManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DAORessource createDAORessource() {
|
public DAORessource createDAORessource() {
|
||||||
return null;
|
return new DAORessourceJPA(getEntityManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DAOThematique createDAOThematique() {
|
public DAOThematique createDAOThematique() {
|
||||||
return null;
|
return new DAOThematiqueJPA(getEntityManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAOTypeActeur createDAOTypeActeur() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DAOTypeRessource createDAOTypeRessource() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DAOUsage createDAOUsage() {
|
public DAOUsage createDAOUsage() {
|
||||||
return null;
|
return new DAOUsageJPA(getEntityManager());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAORegionAcademique;
|
||||||
|
import fr.univ_amu.iut.model.RegionAcademique;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
// NOT JPA. No idea how to achieve it else
|
||||||
|
public class DAORegionAcademiqueJPA extends DAOBaseClassJPA<RegionAcademique> implements DAORegionAcademique {
|
||||||
|
|
||||||
|
public DAORegionAcademiqueJPA(EntityManager entityManager) {
|
||||||
|
super(entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RegionAcademique> findAll() {
|
||||||
|
TypedQuery<RegionAcademique> query = entityManager.createNamedQuery("RegionAcademique.findAll", RegionAcademique.class);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RegionAcademique getById(int id) {
|
||||||
|
TypedQuery<RegionAcademique> query = entityManager.createNamedQuery("RegionAcademique.findById", RegionAcademique.class);
|
||||||
|
query.setParameter("numEt", id);
|
||||||
|
return query.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAORessourceJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAORessourceJPA.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAORessource;
|
||||||
|
import fr.univ_amu.iut.model.Ressource;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
// NOT JPA. No idea how to achieve it else
|
||||||
|
public class DAORessourceJPA extends DAOBaseClassJPA<Ressource> implements DAORessource {
|
||||||
|
|
||||||
|
public DAORessourceJPA(EntityManager entityManager) {
|
||||||
|
super(entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Ressource> findAll() {
|
||||||
|
TypedQuery<Ressource> query = entityManager.createNamedQuery("Ressource.findAll", Ressource.class);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Ressource getById(int id) {
|
||||||
|
TypedQuery<Ressource> query = entityManager.createNamedQuery("Ressource.findById", Ressource.class);
|
||||||
|
query.setParameter("numEt", id);
|
||||||
|
return query.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOThematiqueJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOThematiqueJPA.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAOThematique;
|
||||||
|
import fr.univ_amu.iut.model.Thematique;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
// NOT JPA. No idea how to achieve it else
|
||||||
|
public class DAOThematiqueJPA extends DAOBaseClassJPA<Thematique> implements DAOThematique {
|
||||||
|
|
||||||
|
public DAOThematiqueJPA(EntityManager entityManager) {
|
||||||
|
super(entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Thematique> findAll() {
|
||||||
|
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findAll", Thematique.class);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Thematique getById(int id) {
|
||||||
|
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findById", Thematique.class);
|
||||||
|
query.setParameter("numEt", id);
|
||||||
|
return query.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package fr.univ_amu.iut.dao.jpa;
|
||||||
|
|
||||||
|
import fr.univ_amu.iut.dao.DAOUsage;
|
||||||
|
import fr.univ_amu.iut.model.Usage;
|
||||||
|
import jakarta.persistence.EntityManager;
|
||||||
|
import jakarta.persistence.TypedQuery;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
// NOT JPA. No idea how to achieve it else
|
||||||
|
public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
||||||
|
|
||||||
|
public DAOUsageJPA(EntityManager entityManager) {
|
||||||
|
super(entityManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Usage> findAll() {
|
||||||
|
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findAll", Usage.class);
|
||||||
|
return query.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Usage getById(int id) {
|
||||||
|
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findById", Usage.class);
|
||||||
|
query.setParameter("numEt", id);
|
||||||
|
return query.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
@ -4,7 +4,10 @@ import jakarta.persistence.*;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@NamedQueries({
|
||||||
|
@NamedQuery(name = "Academie.findAll", query = "SELECT p FROM Academie p"),
|
||||||
|
@NamedQuery(name = "Academie.findByCode", query = "SELECT p FROM Academie p WHERE p.code = :acaCode"),
|
||||||
|
})
|
||||||
@Entity
|
@Entity
|
||||||
public class Academie {
|
public class Academie {
|
||||||
private final static HashMap<String, Academie> INSTANCES = new HashMap<>();
|
private final static HashMap<String, Academie> INSTANCES = new HashMap<>();
|
||||||
|
@ -18,12 +18,10 @@ public class Acteur {
|
|||||||
@Embedded
|
@Embedded
|
||||||
Coordonees coordonees;
|
Coordonees coordonees;
|
||||||
|
|
||||||
@ManyToOne(cascade = CascadeType.ALL)
|
String typeActeur;
|
||||||
TypeActeur typeActeur;
|
|
||||||
|
|
||||||
public Acteur() {
|
public Acteur() {
|
||||||
coordonees = new Coordonees();
|
coordonees = new Coordonees();
|
||||||
typeActeur = new TypeActeur();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
@ -43,7 +41,7 @@ public class Acteur {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getTypeActeur() {
|
public String getTypeActeur() {
|
||||||
return typeActeur.nom;
|
return typeActeur;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNom(String nom) {
|
public void setNom(String nom) {
|
||||||
@ -55,7 +53,7 @@ public class Acteur {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setTypeActeur(String typeActeur) {
|
public void setTypeActeur(String typeActeur) {
|
||||||
this.typeActeur.setNom(typeActeur);
|
this.typeActeur = typeActeur;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getNumero() {
|
public int getNumero() {
|
||||||
|
@ -5,8 +5,14 @@ import jakarta.persistence.GeneratedValue;
|
|||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import jakarta.persistence.Transient;
|
import jakarta.persistence.Transient;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
public class Discipline {
|
public class Discipline {
|
||||||
|
|
||||||
|
private static List<Discipline> INSTANCES = new ArrayList<>();
|
||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
public static Discipline Toutes = new Discipline("Toutes disciplines");
|
public static Discipline Toutes = new Discipline("Toutes disciplines");
|
||||||
@Transient
|
@Transient
|
||||||
@ -30,13 +36,29 @@ public class Discipline {
|
|||||||
String nom;
|
String nom;
|
||||||
|
|
||||||
public Discipline() {
|
public Discipline() {
|
||||||
|
INSTANCES.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Discipline(String nom) {
|
Discipline(String nom) {
|
||||||
|
this();
|
||||||
this.nom = nom;
|
this.nom = nom;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<Discipline> toutes() {
|
||||||
|
return INSTANCES;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Discipline getById(int id){
|
||||||
|
for(Discipline discipline : Discipline.toutes()) {
|
||||||
|
if (discipline.id == id) return discipline;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId(){
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
public String getNom() {
|
public String getNom() {
|
||||||
return nom;
|
return nom;
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,14 @@ package fr.univ_amu.iut.model;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
public class RegionAcademique {
|
public class RegionAcademique {
|
||||||
|
|
||||||
|
private static List<RegionAcademique> INSTANCES = new ArrayList<>();
|
||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
public static RegionAcademique AuvergneRhoneAlpes = new RegionAcademique("Région académique Auvergne-Rhône-Alpes");
|
public static RegionAcademique AuvergneRhoneAlpes = new RegionAcademique("Région académique Auvergne-Rhône-Alpes");
|
||||||
@Transient
|
@Transient
|
||||||
@ -46,11 +52,23 @@ public class RegionAcademique {
|
|||||||
int id;
|
int id;
|
||||||
String nom;
|
String nom;
|
||||||
|
|
||||||
|
public RegionAcademique() {
|
||||||
|
INSTANCES.add(this);
|
||||||
|
}
|
||||||
public RegionAcademique(String nom) {
|
public RegionAcademique(String nom) {
|
||||||
|
this();
|
||||||
this.nom = nom;
|
this.nom = nom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RegionAcademique() {
|
public static List<RegionAcademique> toutes(){
|
||||||
|
return INSTANCES;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RegionAcademique getById(int id){
|
||||||
|
for(RegionAcademique regionAcademique : INSTANCES){
|
||||||
|
if(regionAcademique.id == id)return regionAcademique;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
|
@ -1,17 +1,21 @@
|
|||||||
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.ManyToOne;
|
|
||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
|
||||||
|
@NamedQueries({
|
||||||
|
@NamedQuery(name = "Ressource.findAll", query = "SELECT p FROM Ressource p"),
|
||||||
|
@NamedQuery(name = "Ressource.findById", query = "SELECT p FROM Ressource p WHERE p.id = :id"),
|
||||||
|
})
|
||||||
@Entity
|
@Entity
|
||||||
public class Ressource {
|
public class Ressource {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
int id;
|
int id;
|
||||||
|
|
||||||
|
String nomRessource;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
TypeRessource typeRessource;
|
TypeRessource typeRessource;
|
||||||
URL lienRessource;
|
URL lienRessource;
|
||||||
@ -32,4 +36,8 @@ public class Ressource {
|
|||||||
public URL getLienRessource() {
|
public URL getLienRessource() {
|
||||||
return lienRessource;
|
return lienRessource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getNomRessource() {
|
||||||
|
return nomRessource;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
package fr.univ_amu.iut.model;
|
|
||||||
|
|
||||||
import jakarta.persistence.Entity;
|
|
||||||
import jakarta.persistence.GeneratedValue;
|
|
||||||
import jakarta.persistence.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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,9 +3,12 @@ package fr.univ_amu.iut.model;
|
|||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@NamedQueries({
|
||||||
|
@NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"),
|
||||||
|
@NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usage p WHERE p.id = :id"),
|
||||||
|
})
|
||||||
@Entity
|
@Entity
|
||||||
public class Usage {
|
public class Usage {
|
||||||
@Id
|
@Id
|
||||||
@ -24,8 +27,8 @@ public class Usage {
|
|||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
Niveau niveau;
|
Niveau niveau;
|
||||||
|
|
||||||
@OneToMany(cascade = CascadeType.ALL)
|
@OneToOne
|
||||||
List<Academie> academies = new ArrayList<>();
|
Academie academie;
|
||||||
|
|
||||||
@OneToMany(cascade = CascadeType.ALL)
|
@OneToMany(cascade = CascadeType.ALL)
|
||||||
List<Ressource> ressources = new ArrayList<>();
|
List<Ressource> ressources = new ArrayList<>();
|
||||||
@ -78,15 +81,8 @@ public class Usage {
|
|||||||
this.niveau = niveau;
|
this.niveau = niveau;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Academie> getAcademies() {
|
public Academie getAcademie() {
|
||||||
return academies;
|
return academie;
|
||||||
}
|
|
||||||
|
|
||||||
public void addAcademies(Academie ... academies) {
|
|
||||||
this.academies.addAll(List.of(academies));
|
|
||||||
}
|
|
||||||
public void addAcademies(Collection<? extends Academie> academies){
|
|
||||||
this.academies.addAll(academies);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Ressource> getRessources() {
|
public List<Ressource> getRessources() {
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!-- database connection properties -->
|
<!-- database connection properties -->
|
||||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:derby:memory:usageBD;create=true"/>
|
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/devapp"/>
|
||||||
<property name="jakarta.persistence.jdbc.user" value=""/>
|
<property name="jakarta.persistence.jdbc.user" value="root"/>
|
||||||
<property name="jakarta.persistence.jdbc.password" value=""/>
|
<property name="jakarta.persistence.jdbc.password" value="azerty123"/>
|
||||||
|
|
||||||
<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"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user