Connexion & persistance

cs_rastapaye Messages postés 7 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 29 juillet 2005 - 21 avril 2005 à 15:39
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 - 21 avril 2005 à 16:55
Bonjour,

Imaginons que je crée une classe # dont le constructeur demande une connexion ouverte à la base de données.

Est-ce que la connection reste ouvert et uniquement dispo pour mon objet tant qu'il est en vie ou est-ce qu'elle retourne toute seule au pool ?

Que préconisez-vous pour gérer la connexion ?

Merci de votre aide,

Rastapaye

2 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
21 avril 2005 à 16:12
ton cas, j'utiliserai un Singleton qui contiendrait la connection à ta base de données.

Mais je trouve plus "normal" d'ouvrir et de refermer les connexions à la demande.

Séb

Sébastien FERRAND

Blog :
http://blogs.developpeur.org/sebmafate</FO< body>
0
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
21 avril 2005 à 16:55
je suis d'accord , surtout que si tu ne ferme pas explicitement ta connexion dan ton destructeur et / ou que celui ci n'est jamais finalisé , la connexion va rester ouverte.

Pour gérer tes connexions, soit tu le fais a la mano cad :

je veux une donnée:
1/ j'ouvre une connection
2/ je prend ma donnée
3/ je ferme ma connection

ca donne
try
{
connexion.open()
...traitement...
}
catch
{
...traitement...
}
finally
{
connexion.close()
}

ne pas oublier de fermer ta connexion dans la finally car si tu as une exception elle va rester ouverte.

Sinon si tu accede a des données SQL serveur ou meme oracle, tu peux regarder du coté des application blocks de microsoft qui sotn des DB managers tres puissants et tres simplifiés.

plsu d'infos sur :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/daab.asp
0
Rejoignez-nous