Class JdbcDAO<T>
java.lang.Object
it.unisa.diem.wordageddon_g16.db.JdbcDAO<T>
- Type Parameters:
T- tipo dell'entità gestita dal DAO concreto
- All Implemented Interfaces:
DAO<T>
- Direct Known Subclasses:
JDBCDocumentDAO,JDBCGameReportDAO,JDBCStopWordDAO,JDBCUserDAO,JDBCWdmDAO
Classe astratta di supporto per la realizzazione di DAO (Data Access Object) basati su JDBC.
Fornisce un insieme di metodi protetti e riutilizzabili per semplificare l'accesso al database,
centralizzando la logica comune di esecuzione di query, aggiornamenti e gestione delle risorse.
Ciascun DAO concreto dovrà estendere questa classe e implementare i metodi specifici previsti
dall'interfaccia DAO.
Caratteristiche principali:
- Gestione automatica di
PreparedStatementeResultSettramite try-with-resources. - Supporto a query parametrizzate e non, tramite metodi generici che sfruttano una
Callbackper l’elaborazione flessibile dei risultati dalla query SQL (ResultSet). - Gestione centralizzata delle eccezioni e logging automatico in caso di errore.
- Metodi utility per operazioni semplici e frequenti (es. verifica se una tabella è vuota).
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ConnectionConnessione persistente al database utilizzata dal DAO. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJdbcDAO(Connection connection) Costruisce un nuovo JdbcDAO utilizzando la connessione specificata. -
Method Summary
Modifier and TypeMethodDescriptionprotected <R> RexecuteQuery(String sql, javafx.util.Callback<ResultSet, R> cb) Esegue una query SQL semplice (senza parametri) e ne elabora il risultato tramiteCallback.protected <R> RexecuteQuery(String sql, javafx.util.Callback<ResultSet, R> cb, Object... params) Esegue una query SQL con parametri e applica unaCallbackper elaborare ilResultSet.protected longexecuteUpdate(String sql, Object... params) Esegue un'operazione di modifica (INSERT, UPDATE, DELETE) sul database.protected booleanVerifica se una tabella contiene almeno una riga.
-
Field Details
-
connection
Connessione persistente al database utilizzata dal DAO.
-
-
Constructor Details
-
JdbcDAO
Costruisce un nuovo JdbcDAO utilizzando la connessione specificata.- Parameters:
connection- la connessione al database
-
-
Method Details
-
executeQuery
Esegue una query SQL con parametri e applica unaCallbackper elaborare ilResultSet.- Type Parameters:
R- tipo di dato restituito dalla callback- Parameters:
sql- query SQL parametrizzatacb- callback che processa il risultato della queryparams- parametri da sostituire nella query- Returns:
- risultato ottenuto dalla callback
- Throws:
QueryFailedException- se la query fallisce durante l'esecuzione
-
executeQuery
Esegue una query SQL semplice (senza parametri) e ne elabora il risultato tramiteCallback.- Type Parameters:
R- tipo di risultato prodotto dalla callback- Parameters:
sql- query SQL da eseguirecb- callback che processa ilResultSet- Returns:
- risultato ottenuto dalla callback
- Throws:
QueryFailedException- se la query fallisce
-
executeUpdate
Esegue un'operazione di modifica (INSERT, UPDATE, DELETE) sul database.Se l'operazione è una INSERT, restituisce l'ID generato dalla riga appena inserita.
- Parameters:
sql- istruzione SQL da eseguireparams- parametri per l'inserimento- Returns:
- ID generato, oppure
-1se assente - Throws:
SQLException- se l'esecuzione fallisce
-
isEmpty
Verifica se una tabella contiene almeno una riga.- Parameters:
tableName- nome della tabella da controllare- Returns:
truese contiene righe,falsese è vuota o se la query fallisce
-