Bonjour à tous,
Je cherche le meilleur moyen de centraliser mes accès à une base de données. En gros, mon application possède un nombre important de classes (une vingtaine) qui font des requêtes directement à ma base de données.
Je compte changer tout cela de façon à ce qu'il n'y ait plus qu'un seul point d'accès vers ma base de données.
J'avais imaginé une solution, mais j'aimerais que vous me disiez si je suis sur la bonne voie, ou s'il y a de meilleures façons de faire (sans pour autant écrire quelque chose de trop complexe) :
Je crée une classe DatabaseAccess, qui est un singleton. Son rôle est d'initialiser les accès à la base de données. Cette classe serait donc la seule à avoir accès au pool de connections. Une fois cette initialisation réalisée, elle crée un Thread dont la tâche principale est d'exécuter la requête SQL. Ainsi, je peux réaliser plusieurs requêtes en parallèle, sans problème.
Du coup, si une classe désire faire une requête SQL, elle fait appel à mon singleton DatabaseAccess, qui se chargera de tout. Par exemple, j'imagine que je pourrais avoir quelque chose comme ça pour l'appel depuis cette classe :
C'est une idée comme ça, qui me parait à peu près propre et pas franchement complexe à coder. Qu'en pensez-vous ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 try { String maRequete = "SELECT blabla..."; ResultSet monResultSet = null; DatabaseAccess.getInstance().executeSelect(maRequete, monResultSet); while (monResultSet == null) { // Attente du resultat. Thread.sleep(100); } // Code de traitement du resultset. ... } catch (Exception e) { // Si erreur lors de l'execution. ... }
Merci pour votre aide.
Partager