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 :

Pool de connexion à une base de données en java


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Points : 19
    Points
    19
    Par défaut Pool de connexion à une base de données en java
    Bonjour,

    Je souhaiterais mettre en place dans mon application Java native un pool de connexion, (dont le nombre de connexion serait parametrable) à un SGDB. (type oracle, ou mysql).

    Je ne sais pas comment m'y prendre : dois-je le developper moi-même "à la main", en utilisant JDBC ? (j'arrive à utiliser JDBC et 1 cnx)

    J'ai lu la faq du forum, on parle d'utiliser un DataSource (javax.sql.*) mais je ne comprends pas bien comment parametrer le nombre de connection. Le Datasource est-il vraiment la solution à mon pb ? Je ne comprends pas bien la partie JNDI pour créer le datasource.

    Par ailleurs, j'ai entendu parler de solutions telles que hibernate : je ne sais pas si hibernate permet de gerer un tel pool ?

    Si qqu'un a un peu d'experience dans ce domaine, j'apprecierais d'être orienté dans telle ou telle direction ;-)

    Merci !

  2. #2
    Membre habitué Avatar de dr00w
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 116
    Points : 136
    Points
    136
    Par défaut
    Il existe plusieurs solutions (payantes et gratuite). Dépendemment des besoins :

    iBatis en inclus quelques unes : http://ibatis.apache.org/
    C'est ce que j'utilise.

    Hibernate inclus aussi un pool mais c'est plutôt une solution complète et très puissante de sérialisation des objets.

    Sinon, une recherche sur Google "connection pool java" va te donner plusieurs alternatives.

    Bonne chance.

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Pour ce qui est des pools de connexions ( que je connais bien !! ), je ne peux que te conseiller effectivement comme dit dans les FAQs , les javax.sql.DataSource.

    Il faut justement que tu considères ton DataSource comme ton pool de connexion.
    Pour se faire, il faut donc paramétrer un DataSource, via ce que l'on appelle JNDI.
    JNDI est une interface qui permet de partager sur un même serveur ( peut-être plus d'un mais je ne suis pas sûr) des objets. En général , tu donnes une clé de référence à ces objets.
    Par exemple, pour les DataSource , on utilise souvent jdbc/mabasededonnee1.
    Ensuite dans ton code , tu dois passer par la classe InitialContext pour récupérer l'objet correspondant , via un apppel JNDI, en lui passant cette fameuse clé.
    Je n'ai pas de code sous la main , mais avec InitialContext et DataSource , tu devrais trouver facilement.
    Pour ce qui est de la configuration de cette DataSource, cela dépend de ton serveur d'application (Tomcat, Websphere etc..), et tu devra spécifier à ton application que tu l'utilises ( configuration dans le web.xml ), donc là à toi de chercher encore.

    Pour ce qui est d'Hibernate , que je n'ai jamais manipulé. Celui ci s'appuie sur les DataSource pour se connecter au base de données, et permet depuis un objet Java et un mapping XML de s'affranchir des requetes SQL d'insertion , d'update de suppression ou de visualisation. La partie sérialisation doit être intéressante bien que je ne pense pas que ce soit l'essentiel de son travail. Peut-être que des spécialistes Hibernate pourraient nous éclairer à ce sujet.

    L'avantage des DataSource, est surtout de pouvoir, sans changer de référence, de changer de base de données ( Oracle , MySQL, SQL Server). Autre avantage, toutes l'implémentations de libération des connexions, timeout, et autre chose qui te permettent d'éviter une pénurie dans ton pool si tu as oublié de relacher les connexions.

    Donc voilà un conseil DATASOURCE.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    J'ai regardé un peu + dans le detail le datasource, apparemment c'est a utiliser quand on utilise un serveur d'applications.

    J'ai l'impression que, quand on veut faire de pooling de connexion dans une appli java standalone, il faut le faire "à la main".

    Sur le forum suivant, le developper du datasource de mysql semble recommender d'utiliser autre chose (ici c3p0, http://c3p0.sf.net/) :

    http://forums.mysql.com/read.php?39,21126,21147

    Je n'ai pas encore regardé ibatis, je vais le faire. Si qqu'un d'autre sur le forum a deja fait du pooling de connexion à une database, je veux bien avoir qques orientations ;-)

    Merci !

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/05/2014, 22h53
  2. connexion à une base de données avec java sous linux
    Par courageuse dans le forum Linux
    Réponses: 3
    Dernier message: 25/05/2009, 18h11
  3. ERREUR DE CONNEXION à une base de donnée ACCESS protégée
    Par unionriton dans le forum Bases de données
    Réponses: 4
    Dernier message: 09/05/2005, 09h35
  4. Delphi Connexion à une base de donnée distante par TCP/IP
    Par viecel dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/01/2005, 19h19
  5. Réponses: 3
    Dernier message: 29/03/2004, 18h02

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