Le pattern DAO permet d'isoler l'accès aux données et leur stockage du reste de l'application.
Mettre en place des exceptions spécifiques au DAO permet de masquer le type du stockage sous-jascent.
Mettre en place une Factory initialisée au démarrage de l'application via un ServletContextListener permet de ne charger qu'une seule et unique fois le driver JDBC.
Mettre en place des utilitaires pour la préparation des requêtes et la libération des ressources permet de limiter la duplication et d'alléger grandement le code.
Notre DAO libérant proprement les ressources qu'il met en jeu, une seule et unique instance de notre DAO peut être partagée par toutes les requêtes entrantes.
Récupérer une telle instance de DAO de manière unique depuis une servlet, et non pas à chaque requête entrante, peut se faire simplement en utilisant sa méthode init().
Notre servlet transmet alors simplement l'instance du DAO à l'objet métier, qui sera responsable de la gestion des données.
Notre objet métier ne connaît pas le système de stockage final utilisé : il ne fait qu'appeler les méthodes définies dans l'interface de notre DAO.