Class JDBCDocumentDAO

java.lang.Object
it.unisa.diem.wordageddon_g16.db.JdbcDAO<Document>
it.unisa.diem.wordageddon_g16.db.JDBCDocumentDAO
All Implemented Interfaces:
DAO<Document>, DocumentDAO

public class JDBCDocumentDAO extends JdbcDAO<Document> implements 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.

  • Constructor Details

    • JDBCDocumentDAO

      public JDBCDocumentDAO(Connection conn)
      Costruisce un nuovo DocumentDAO utilizzando la connessione specificata.
      Parameters:
      conn - la connessione al database da utilizzare per le operazioni
  • Method Details

    • selectBy

      public Optional<Document> selectBy(String filename)
      Recupera un documento dal database in base al suo identificativo (rappresentato dal filename).

      Se il documento esiste, viene restituito incapsulato in un Optional. Se non esiste, il risultato sarà vuoto.

      Specified by:
      selectBy in interface DocumentDAO
      Parameters:
      filename - identificativo univoco del documento
      Returns:
      Optional contenente il documento trovato, oppure vuoto
      Throws:
      QueryFailedException - se l'esecuzione della query fallisce
    • selectAll

      public List<Document> selectAll()
      Recupera tutti i documenti presenti nella tabella Document.
      Specified by:
      selectAll in interface DAO<Document>
      Returns:
      lista di Document recuperati dal database
      Throws:
      QueryFailedException - se l'esecuzione della query fallisce
    • insert

      public void insert(Document document)
      Inserisce un nuovo Document nella tabella. Se il documento esiste già (stesso id), l'operazione viene ignorata.
      Specified by:
      insert in interface DAO<Document>
      Parameters:
      document - documento da inserire
      Throws:
      QueryFailedException - se si verifica un errore durante l'inserimento
    • update

      public void update(Document document)
      Aggiorna i dati di un Document esistente nella tabella, modificandone titolo e numero di parole.
      Specified by:
      update in interface DAO<Document>
      Parameters:
      document - documento da aggiornare
      Throws:
      UpdateFailedException - se si verifica un errore durante l’aggiornamento
    • delete

      public void delete(Document document)
      Elimina un Document dalla tabella.

      Grazie ai vincoli di integrità ON DELETE CASCADE, vengono rimossi anche i record associati (es. Content, WDM).

      Specified by:
      delete in interface DAO<Document>
      Parameters:
      document - documento da eliminare
      Throws:
      UpdateFailedException - se l'eliminazione fallisce
    • isEmpty

      public boolean isEmpty()
      Verifica se la tabella Document contiene almeno una riga.
      Specified by:
      isEmpty in interface DocumentDAO
      Returns:
      true se la tabella è vuota, false altrimenti