Class JDBCWdmDAO

java.lang.Object
it.unisa.diem.wordageddon_g16.db.JdbcDAO<WDM>
it.unisa.diem.wordageddon_g16.db.JDBCWdmDAO
All Implemented Interfaces:
DAO<WDM>, WdmDAO

public class JDBCWdmDAO extends JdbcDAO<WDM> implements WdmDAO
Implementazione JDBC del WdmDAO, che gestisce le operazioni sulla matrice parola-documento (WDM).

Le informazioni sono salvate nella tabella WDM, dove ogni riga rappresenta una parola contenuta in un documento e la sua frequenza (numero di occorrenze). Il DAO collega ciascuna entry al relativo Document.

  • Field Details

    • documentDAO

      private final DocumentDAO documentDAO
      DAO utilizzato per recuperare i documenti associati alle istanze di WDM.
  • Constructor Details

    • JDBCWdmDAO

      public JDBCWdmDAO(Connection conn, DocumentDAO documentDAO)
      Costruisce un nuovo JDBCWdmDAO utilizzando la connessione e il DAO dei documenti specificati.
      Parameters:
      conn - la connessione al database da utilizzare per le operazioni
      documentDAO - il DAO per la gestione dei documenti
  • Method Details

    • selectBy

      public Optional<WDM> selectBy(Document document)
      Recupera una singola istanza di WDM in base al documento fornito.
      Specified by:
      selectBy in interface WdmDAO
      Parameters:
      document - il documento di cui recuperare la mappa parola-frequenza
      Returns:
      un Optional contenente l'oggetto WDM, oppure vuoto se non esiste
    • selectAll

      public List<WDM> selectAll()
      Recupera tutte le istanze della matrice WDM presenti nel database.

      Ogni WDM rappresenta un documento e la mappa delle parole contenute al suo interno con la relativa frequenza.

      Specified by:
      selectAll in interface DAO<WDM>
      Returns:
      una lista di tutte le WDM disponibili
    • selectWhere

      public List<WDM> selectWhere(String sqlClause, Object... params)
      Recupera le istanze di WDM che soddisfano una specifica clausola SQL.
      Parameters:
      sqlClause - la clausola WHERE da applicare (senza includere la parola chiave WHERE)
      params - i parametri da sostituire nella query
      Returns:
      una lista di WDM corrispondenti ai criteri forniti
    • selectBase

      private List<WDM> selectBase(String query, Object... params)
      Metodo interno di utilità per eseguire una query e convertire i risultati in oggetti WDM.

      Costruisce dinamicamente le istanze WDM aggregando le parole e le frequenze associate a ciascun documento.

      Parameters:
      query - la query SQL da eseguire
      params - i parametri da sostituire nella query
      Returns:
      una lista di oggetti WDM ottenuti dai risultati della query
      Throws:
      QueryFailedException - se si verifica un errore durante l'elaborazione
    • delete

      public void delete(WDM wdm)
      Elimina tutte le parole associate a un documento dalla tabella WDM.
      Specified by:
      delete in interface DAO<WDM>
      Parameters:
      wdm - la matrice parola-documento da eliminare
      Throws:
      QueryFailedException - se si verifica un errore durante la cancellazione
    • update

      public void update(WDM wdm)
      Aggiorna le frequenze delle parole per un documento nella tabella WDM.

      Per ogni parola nella mappa associata al documento, aggiorna la relativa frequenza.

      Specified by:
      update in interface DAO<WDM>
      Parameters:
      wdm - la matrice parola-documento contenente i nuovi valori
      Throws:
      QueryFailedException - se si verifica un errore durante l'aggiornamento
    • insert

      public void insert(WDM wdm)
      Inserisce una nuova matrice parola-documento nella tabella WDM.

      Per ogni parola nel documento, viene inserita una riga con il numero di occorrenze.

      Specified by:
      insert in interface DAO<WDM>
      Parameters:
      wdm - la matrice parola-documento da inserire
      Throws:
      QueryFailedException - se si verifica un errore durante l'inserimento