Créer un DAO¶
JTheque utilise Spring JDBC comme outil de persistance. C'est une couche qui facilite l'utilisation de JDBC.
Il existe 2 manières de créer votre DAO dans JTheque, la première manière est simplement de créer votre propre classe en utilisant les objets fournis dans le contexte Spring. Voici les objets qui pourront vous aider :
- dataSource : La source de données
- transactionManager : Le gestionnaire de transactions
- jdbcTemplate : Le gestionnaire Spring JDBC
- daoPersistenceContext : Un objet utilitaire pour exécuter des actions sur la base de données
Il est néanmoins plus simple d'hériter de la classe GenericDao qui vous permettra de créer un DAO facilement. Il s'agit d'une classe abstraite qui gère les données dans un cache. C'est-à-dire qu'ils sont chargés la première fois en mémoire et ensuite on travaille uniquement sur ces données. La base de données est toutefois automatiquement mise à jour.
Il faut définir 4 méthodes lorsqu'on étend GenericDao :
- protected abstract void loadCache() : Doit charger le cache des données
- protected abstract void load(int i) : Charge l'entité i depuis la base de données dans le cache
- protected abstract ParameterizedRowMapper<T> getRowMapper() : Return un row mapper pour charger la données
- protected abstract QueryMapper getQueryMapper() : Retourne un query mapper pour construire des données d'insert et d'update depuis des données
Il faut également fournir en paramètre du constructeur la table concernant l'objet créé.
Les classes de données doivent implémenter la classe Entity.
Un row mapper permet de convertir un ResultSet en objet de données. Un query mapper permet de convertir un objet de données en requête.
La DAO peut utiliser l'objet daoPersistenceContext pour les requêtes sur la base.