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 :

Connexion à Derby


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut Connexion à Derby
    Salut à tous !

    Mon programme peut se connecter à diverses databases... si on lui donne Driver et URL corrects.

    exemple base H2 :
    driver=org.h2.Driver
    url=jdbc:h2:/home/fc/H2_BASE/base/database;FILE_LOCK=NO
    ou base Derby :
    driver=org.apache.derby.jdbc.ClientDriver
    url=jdbc:derby://localhost:1527/database
    mais pas moyen de donner un chemin à Derby, comme plus haut à H2 :
    driver=org.apache.derby.jdbc.ClientDriver
    url=jdbc:derby:/home/fc/JAVA/DB/base/database
    là je reçois l'erreur "No suitable Driver"

    comment faire pour donner à Derby une adresse sans passer par localhost ?
    (si c'est possible)

    merci de vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Desole, je viens juste de me mettre a Derby aujourd'hui, mais ne faut'il pas utiliser le mode Embeded de Derby pour cela.

    Un truc du genre (voir SimpleApp fourni dans les exemples de Derby) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
      public String framework = "embedded";
      public String driver = "org.apache.derby.jdbc.EmbeddedDriver";
      public String protocol = "jdbc:derby:";
     
    [...]
     
      conn = DriverManager.getConnection(protocol + path_to_db, props);
     
    [...]
      /*
        We end the transaction and the connection.
      */
      conn.commit();
      conn.close();
      System.out.println("Committed transaction and closed connection");
     
      /*
        In embedded mode, an application should shut down Derby.
        If the application fails to shut down Derby explicitly,
        the Derby does not perform a checkpoint when the JVM shuts down, which means
        that the next connection will be slower.
        Explicitly shutting down Derby with the URL is preferred.
        This style of shutdown will always throw an "exception".
      */
      boolean gotSQLExc = false;
     
      if (framework.equals("embedded")) {
      try {
        DriverManager.getConnection("jdbc:derby:;shutdown=true");
      }
      catch (SQLException se) {
        gotSQLExc = true;
      }
      if (!gotSQLExc) {
        System.out.println("Database did not shut down normally");
      }
      else {
        System.out.println("Database shut down normally");
      }
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Merci !

    A vrai dire mon but le suivant :

    j'ai une database en Derby sur mon ordinateur (créée avec Netbeans).
    j'ai un jar et sa lib : c'est un programme de gestion des tables.

    je tansporte le tout au bureau, où cinq ordinateurs sont en réseau, je mets le database sur le serveur et sur chaque poste un exemplaire du jar + lib.
    reste à préciser sur chaque poste dans lib l'adresse de la base sur le serveur.

    avec H2, je donne "//serveur/adresses/H2/database" comme URL et ça marche
    (en gros, faut voir les questions file_lock, isolation, rafraîchissement, etc).

    Est-ce la bonne façon de faire ?
    Suis-je dès lors en "Client - serveur" du simple fait de coller la database à un endroit accessible ?

    Merci de vos réponses,
    désolé, je nage un brin sur ces questions.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Heu, pour ce que j'en sais là tu sors complètement du cadre client-server en faisant un accès direct au système de fichier de la base. Après peut-être que dans certaines bases (Fox Pro, Access, ...) cela fonctionne mais je doute que chez la majorité (MySQL, Oracle, MS-SLQ server) ca soit supporté (il y a très longtemps que je n'ai pratiqué de SGBD).

    Pourquoi ne pas lancer le serveur Derby sur la machine server justement ? Il serait plus à même de gérer les accès concurrents via le pilote client. Quant à savoir si les accès via le pilote embedded peuvent être concurrents sur une même base, là il faut soit tester, soit lire en profondeur la doc de Derby, quitte à aller poster la question naïvement chez Apache.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Merci pour la prompte réponse !

    Pourquoi ne pas lancer le serveur Derby sur la machine server justement ? Il serait plus à même de gérer les accès concurrents via le pilote client.
    Oui, certainement c'est la procédure normale mais...
    comment faire ?
    ( je suis hyper débutant sur cette question)
    un exemple ou un lien vers un tutoriel serait d'un grand secours !

    Quant à savoir si les accès via le pilote embedded peuvent être concurrents sur une même base,
    euh, d'après ce que j'avais cru comprendre en embedded la base est carrément logée dans le jar ou sa lib... chaque utilisateur a sa base de donnée. Mais encore une fois sous réserve.

    merci.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/01/2010, 11h54
  2. [Derby] Connaître le nombre de connexions actives
    Par fraco dans le forum Autres SGBD
    Réponses: 0
    Dernier message: 15/01/2010, 18h42
  3. [Derby] Driver de connexion
    Par Passarinho44 dans le forum NetBeans
    Réponses: 2
    Dernier message: 29/11/2008, 12h08
  4. Problème de connexion a une base Derby
    Par mister_hassan dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 04/10/2007, 14h11
  5. [SunOne 8.2] connexion DB Derby
    Par new_comer dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 17/06/2006, 20h43

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