IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Debutant JAVA JDBC


Sujet :

JDBC Java

  1. #1
    En attente de confirmation mail
    Inscrit en
    Octobre 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 130
    Points : 33
    Points
    33
    Par défaut Debutant JAVA JDBC
    Bonjour,
    Dans le cadre d'une application java, comment faire pour ne pas recréer à chaque fois une connexion pour chaque FRAME de l'application.
    Merci.

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Logiquement tu crées une connexion par requête que tu refermes directement après dans un bloc finally. C'est la manière la plûs propre et sûre de faire.

    Cf la FAQ: http://java.developpez.com/faq/jdbc/?page=connection

  3. #3
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    je ne suis pas vraiment d'accord avec toi sinok.
    Généralement si l'on doit effectuer plusieurs requetes sur une base, il ne faut surtout pas la fermer la connexion à chaque fois (en revanche il faut bien fermer les statements) . La raison est qu'il est très couteux de créer une connexion JDBC.

    kam81 :
    - si tu as besoin d'une seule connexion il faut la stocker quelque part pour y faire référence lorsque tu en as besoin.
    - si tu as besoin de plusieurs connexions alors il faut utiliser un pool de connexion

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    C'est un client lourd ?
    Si oui, tu peux utiliser une propriété statique pour "sauvegarder" la connexion et y accéder de n'importe où...
    Le principe d'un singleton peut être adapté...

    J'oubliais, ne pas oublier de libérer la connexion à la fin de l'application...
    Pour le reste, bien fermer les Statement après usage... mais c'est déjà dit...

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    En utilisant une seule connection partagee pour plusieurs clients la performance peut etre a consider si tu as besoin d'avoir rapidement les donnees.

  6. #6
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Points : 20
    Points
    20
    Par défaut
    Pour la mise en oeuvre, il faut que tu remanies la classe afin que l'identifiant et le mot de passe soit mis en paramètre pour pouvoir l'utiliser. Idem pour l'adresse de ton serveur, et le nom de la base de donnée.
    Ça t'évitera une classe "gruyère" où tout le monde se connecte sur le même identifiant de façon insécurisé... Imagines les dégâts occasionnés par une fausse manipulation de la part d'un collègue/utilisateur incompétent.

    N'étant pas un expert en la matière, je t'aiguillerai plus sur les conseils des aînés de la communauté.

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ttttnht Voir le message
    En utilisant une seule connection partagee pour plusieurs clients la performance peut etre a consider si tu as besoin d'avoir rapidement les donnees.
    Il me semble qu'on est en client lourd dans son cas... enfin c'est le terme "Frame" qui me fait penser à un client lourd...
    Du coup, la notion de connexion partagée ne se pose pas et chaque client utilise sa propre connexion (d'où la propriété static)

Discussions similaires

  1. [DEBUTANT] Syntaxe Java/JDBC
    Par Akela dans le forum JDBC
    Réponses: 7
    Dernier message: 13/06/2006, 08h30
  2. Réponses: 1
    Dernier message: 05/07/2005, 10h47
  3. [JAVA/JDBC]pb executeQuery()
    Par david06600 dans le forum JDBC
    Réponses: 4
    Dernier message: 04/07/2005, 16h10
  4. [debutant] Java et MySQL
    Par micknic dans le forum JDBC
    Réponses: 6
    Dernier message: 16/04/2005, 14h29
  5. [Debutant Java JOGL] problème glVertexPointer()
    Par Stef784ever dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/04/2004, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo