-
Par où commencer
Bonjour,
Je suis en train de faire une appli en java (avec fenetres et base de données mySQL), et je me pose la question suivante :
vaut-il mieux :
-ouvrir le flux vers la BDD en premier ou bien créer la fenêtre en premier ?
Merci pour vos réponses éclairées ;)
-
Bonjour,
Peux tu ré preciser ta question stp? qu'entends tu par "Ouvrir un flux vers und BDD"?
-
Je crois qu'il se demande si il commence par écrire ces vues ou son modèle en fait.
Je sais pas si il y à une règle. Perso je commence par les objets, puis les interfaces graphiques, et enfin les requêtes à la base de données. Mais c'est totalement subjectif.
-
Ah si c'est ça sa question, moi ce que je fais en général c'est commencer par la couche métier (base de données + services métiers). "Il faut toujours commencer une maison par les fondations".
-
Bonjour,
Merci pour vos réponses ! Désolé de ne pas avoir été très clair !
Quand je dis "ouvrir un flux", c'est créer la connexion à la BDD.
Donc, je voulais savoir s'il faut d'abord appeler les fonctions qui gèrent la BDD (connexion) ou s'il faut appeler les fonctions / classes de création des fenêtres.
Mais vos réponses m'ont apportées ce que je voulais savoir. En fait c'est personnel et j'aime l'idée des fondations :)
Merci,
-
Enfin il à une chose qui reste tous le temps valable c'est que dans ton programme ce qui est amené à radicalement changer en général c'est ton interface graphique. Passer d'une console à un client lourd, d'un client lourd à du web par exemple. Le risque en commencent par ton interface graphique c'est que tu concevra mal derrière ton architecture métier et data en faisant par exemple des calcules dans ton interface graphique. Donc oui commencer par les fondations est en général la méthode conseillé.
-
Si ta question porte sur l'ordre de création à l'exécution, c'est sans importance.
Personnellement, je privilégie l'ordre de nécessité. Crée chaque chose quand besoin.
Si la base de donnée est utile pour l'interface initiale, connecte toi d'abord.
Cela dis, l'interface n'impacte que l'utilisateur, la connection est plus génante.
éventuellement, connecte toi à la volée, uniquement si et quand nécessaire.
-
l'initialisation paresseuse (lazy init) est très souvent plus intéressante que d'autres options.
de toute façon, les bonnes pratiques recommandent d'utiliser un pool de connexions et pas des connexions hard codées, si tu fais ça, le pool saura très certainement s'organiser pour limiter l'attente utilisateur (pas de connexion tout pendant que personne ne réclame de connexion au pool, puis initialisation d'une unique connexion, qui sera retournée à chaque fois tout pendant que d'autres threads ne viennent pas s'en mêler...)
-
Bonjour à tous !
Vos réponses sont très intéressantes !
Je ne connaissais pas la technique pool.
Donc, le plus judicieux serait d'initialiser une unique connexion en créant une classe et donc je n'aurais plus qu'à appeler l'instance "connexion" en lui passant les paramètres de requête (ou autres au besoin) à chaque fois que je souhaite interroger la BDD.
Cette connexion devrait-elle être initialisée avant ou après l'interface graphique ?
je parle ici du déroulement du programme, de l'ordre de lecture, par la JVM, de la classe "connexion" et de la la classe "fenêtre".
Merci beaucoup !
-
Si tu utilises un pool, tu n'ouvres plus de connexions toi-même. Tu demandes au pool "donnes moi une connexion" et lui se débrouille pour t'en donner une (si aucune n'est ouverte actuellement, il le fait, sinon il renvoie immédiatement ce qu'il a en stock)
cf. http://commons.apache.org/proper/commons-dbcp/