Bonjour,
Je me suis toujours posé cette question. Pour une connection Bdd utilisé pour l'ensemble d'un site Web, faut il faire une classe static de connection ou un singleton ou juste une classe que j'instancierais ?
Merci
Bonjour,
Je me suis toujours posé cette question. Pour une connection Bdd utilisé pour l'ensemble d'un site Web, faut il faire une classe static de connection ou un singleton ou juste une classe que j'instancierais ?
Merci
Hello,
Utiliser une classe static c'est très bien. Utiliser de design pattern Singleton pour une connexion base de donnée pour une application Web c'est à discuter.
si tu veux qu'une seule connexion pour toutes les sessions Web (ou tous les utilisateurs qui se connectent à ton site web) alors dans ce cas oui.
Maintenant comme la plupart des fournisseurs utilisent le pool de connexion tu n'as plus à te soucier de cela. tu peux créer une connexion à chaque requête de base de donnée. Ainsi tu es sur d'avoir un contexte de base de données spécifique pour le traitement en cours.
Je ne veux pas une seule connection pour mon site, je veux une utilisation normale.
Donc c'est le pool qui s'occupera de ca.
Donc static c'est ce que tu recommandes ? Car la difference entre un singleton et static n'est pas evidente.
Le fait d'utiliser une classe static est d'éviter de passer par une instanciation pour accèder au contenu de la classe.
Oon utilise une classe static pour l'implémentation du singleton. Cette classe doit en plus vérifier si la connexion est unique dans le sens qu'on vérifie qu'elle n'existe pas avant d'en créer une autre.
La classe static sans l'implémentation du singleton permet de créer tout le temp une connexion à la base de données.
A+
Pour moi l'utilisation d'un singleton c'est justement pour ne pas utiliser une class static.
Elle verifie effectivement si l'objet est deja instancié ou non et renvoi la meme instance ou en cree une si rien n'existe.
Dans les 2 cas, est ce gerer par le pool de connection ?
Est ce qui si 100 utilisateurs se conenctent au meme site, ils utliseront 100 connections (1 par utilisateur et rien qu'une ?) ou 1 seule pour les 100 utilisateurs ?
Vous vous prenez la tête pour rien.
T'as besoin d'accéder à la base:
- tu crées une DbConnection
- tu l'ouvres
- tu fais ta requête
- tu la fermes
Le framework s'occupe du reste. Il gére le pool de connexions, prend une connexion dispo quand il en a besoin, agrandit le pool si nécessaire...
Partager