Class JDBCGameReportDAO
java.lang.Object
it.unisa.diem.wordageddon_g16.db.JdbcDAO<GameReport>
it.unisa.diem.wordageddon_g16.db.JDBCGameReportDAO
- All Implemented Interfaces:
DAO<GameReport>,GameReportDAO
Implementazione JDBC del
DocumentDAO, che gestisce le operazioni sui report.
I report sono salvati nella tabella GameReport e rappresentati tramite il model GameReport.
Tutte le interazioni con il database sono gestite tramite JdbcDAO, con logging automatico via SystemLogger.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final DocumentDAODAO utilizzato per la gestione dei documenti associati ai report di gioco.private final UserDAODAO utilizzato per la gestione degli utenti associati ai report di gioco.Fields inherited from class it.unisa.diem.wordageddon_g16.db.JdbcDAO
connection -
Constructor Summary
ConstructorsConstructorDescriptionJDBCGameReportDAO(Connection conn, DAO<Document> documentDAO, DAO<User> userDAO) Costruisce un nuovoJDBCGameReportDAOutilizzando la connessione e i DAO specificati. -
Method Summary
Modifier and TypeMethodDescriptionvoiddelete(GameReport gameReport) Elimina unGameReportdal database.voidinsert(GameReport gameReport) Inserisce un nuovoGameReportnel database e associa i documenti tramite la tabellaContent.private StringpreFormatTime(long time) Formatta un valore temporale (in secondi) in una stringa nel formato MM:SS.Recupera tutti i report di gioco presenti nella tabellaGameReport.private List<GameReport> selectBase(String query, Object... params) Metodo interno di utilità per eseguire una query di selezione e mappare i risultati in oggettiGameReport.Recupera un report di gioco dal database sulla base dell'utente e del timestamp.selectWhere(String sqlClause, Object... params) Recupera i report di gioco che soddisfano una specifica clausola SQL.voidupdate(GameReport gameReport) Aggiorna unGameReportesistente nel database.Methods inherited from class it.unisa.diem.wordageddon_g16.db.JdbcDAO
executeQuery, executeQuery, executeUpdate, isEmpty
-
Field Details
-
userDAO
DAO utilizzato per la gestione degli utenti associati ai report di gioco. -
documentDAO
DAO utilizzato per la gestione dei documenti associati ai report di gioco.
-
-
Constructor Details
-
JDBCGameReportDAO
Costruisce un nuovoJDBCGameReportDAOutilizzando la connessione e i DAO specificati.- Parameters:
conn- la connessione al database da utilizzare per le operazionidocumentDAO- il DAO per la gestione dei documentiuserDAO- il DAO per la gestione degli utenti
-
-
Method Details
-
selectBy
Recupera un report di gioco dal database sulla base dell'utente e del timestamp.- Specified by:
selectByin interfaceGameReportDAO- Parameters:
user- l'utente autore del reporttimestamp- il timestamp univoco della partita- Returns:
- un
Optionalcontenente il report trovato, o vuoto se non esiste - Throws:
QueryFailedException- se si verifica un errore durante la query
-
selectAll
Recupera tutti i report di gioco presenti nella tabellaGameReport.- Specified by:
selectAllin interfaceDAO<GameReport>- Returns:
- una lista di tutti i report presenti nel database
- Throws:
QueryFailedException- se si verifica un errore durante la query
-
selectWhere
Recupera i report di gioco che soddisfano una specifica clausola SQL.- Parameters:
sqlClause- la clausolaWHEREda applicare (senza la parola chiaveWHERE)params- i parametri da sostituire nella query- Returns:
- una lista di report che corrispondono ai criteri specificati
- Throws:
QueryFailedException- se si verifica un errore durante la query
-
selectBase
Metodo interno di utilità per eseguire una query di selezione e mappare i risultati in oggettiGameReport. Recupera anche i documenti associati tramite la tabellaContent.- Parameters:
query- la query SQL completa da eseguireparams- i parametri da usare nella query- Returns:
- una lista di
GameReportrisultanti - Throws:
QueryFailedException- se si verifica un errore durante l'elaborazione dei risultati
-
insert
Inserisce un nuovoGameReportnel database e associa i documenti tramite la tabellaContent.- Specified by:
insertin interfaceDAO<GameReport>- Parameters:
gameReport- il report da salvare- Throws:
QueryFailedException- se si verifica un errore durante l'inserimento
-
preFormatTime
Formatta un valore temporale (in secondi) in una stringa nel formato MM:SS. Garantisce che il tempo formattato rispetti i vincoli del database:- Parameters:
time- il tempo da formattare- Returns:
- una
Stringnel formato "MM:SS" che rappresenta il tempo normalizzato
-
update
Aggiorna unGameReportesistente nel database.Nota: questa operazione modifica solo la tabella
GameReport, non la tabellaContent.- Specified by:
updatein interfaceDAO<GameReport>- Parameters:
gameReport- il report aggiornato- Throws:
UpdateFailedException- se si verifica un errore durante l'aggiornamento
-
delete
Elimina unGameReportdal database.Grazie al vincolo
ON DELETE CASCADE, i documenti associati nella tabellaContentvengono eliminati automaticamente.- Specified by:
deletein interfaceDAO<GameReport>- Parameters:
gameReport- il report da eliminare- Throws:
UpdateFailedException- se si verifica un errore durante la rimozione
-