Class JDBCDocumentDAO
- All Implemented Interfaces:
DAO<Document>
,DocumentDAO
Implementazione JDBC del
DocumentDAO
, che gestisce le operazioni sui documenti.
I documenti sono salvati nella tabella Document
e rappresentati tramite il model Document
.
Tutte le interazioni con il database sono gestite tramite JdbcDAO
, con logging automatico via SystemLogger
.
-
Field Summary
Fields inherited from class it.unisa.diem.wordageddon_g16.db.JdbcDAO
connection
-
Constructor Summary
ConstructorsConstructorDescriptionJDBCDocumentDAO
(Connection conn) Costruisce un nuovo DocumentDAO utilizzando la connessione specificata. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Elimina unDocument
dalla tabella.void
Inserisce un nuovoDocument
nella tabella.boolean
isEmpty()
Verifica se la tabellaDocument
contiene almeno una riga.Recupera tutti i documenti presenti nella tabellaDocument
.Recupera un documento dal database in base al suo identificativo (rappresentato dalfilename
).void
Aggiorna i dati di unDocument
esistente nella tabella, modificandone titolo e numero di parole.Methods inherited from class it.unisa.diem.wordageddon_g16.db.JdbcDAO
executeQuery, executeQuery, executeUpdate, isEmpty
-
Constructor Details
-
JDBCDocumentDAO
Costruisce un nuovo DocumentDAO utilizzando la connessione specificata.- Parameters:
conn
- la connessione al database da utilizzare per le operazioni
-
-
Method Details
-
selectBy
Recupera un documento dal database in base al suo identificativo (rappresentato dalfilename
).Se il documento esiste, viene restituito incapsulato in un
Optional
. Se non esiste, il risultato sarà vuoto.- Specified by:
selectBy
in interfaceDocumentDAO
- Parameters:
filename
- identificativo univoco del documento- Returns:
Optional
contenente il documento trovato, oppure vuoto- Throws:
QueryFailedException
- se l'esecuzione della query fallisce
-
selectAll
-
insert
Inserisce un nuovoDocument
nella tabella. Se il documento esiste già (stessoid
), l'operazione viene ignorata.- Specified by:
insert
in interfaceDAO<Document>
- Parameters:
document
- documento da inserire- Throws:
QueryFailedException
- se si verifica un errore durante l'inserimento
-
update
Aggiorna i dati di unDocument
esistente nella tabella, modificandone titolo e numero di parole.- Specified by:
update
in interfaceDAO<Document>
- Parameters:
document
- documento da aggiornare- Throws:
UpdateFailedException
- se si verifica un errore durante l’aggiornamento
-
delete
Elimina unDocument
dalla tabella.Grazie ai vincoli di integrità
ON DELETE CASCADE
, vengono rimossi anche i record associati (es.Content
,WDM
).- Specified by:
delete
in interfaceDAO<Document>
- Parameters:
document
- documento da eliminare- Throws:
UpdateFailedException
- se l'eliminazione fallisce
-
isEmpty
public boolean isEmpty()Verifica se la tabellaDocument
contiene almeno una riga.- Specified by:
isEmpty
in interfaceDocumentDAO
- Returns:
true
se la tabella è vuota,false
altrimenti
-