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 :

[JDBC][Derby]Problèmes sur un runnable


Sujet :

JDBC Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [JDBC][Derby]Problèmes sur un runnable
    Bonsoir,
    je me frotte actuellement à un petit problème..
    Je dois utiliser une base de données embarquée pour un projet, et j ai pris Derby.
    Je veux pouvoir charger une sauvegarde d'une base de données à n'importe quel moment (l'utilisateur pourra sauver ce qu'il fait et le charger par la suite).
    Hors, Derby impose que le chargement d'une base de données se fasse uniquement lors de l'établissement de la connexion ..
    J'ai essayé de remettre à null la connexion, de faire des conn.close(), mais rien ne fait, ca ne marche pas ..
    J'ai donc pensé, lorsque j'ai récupéré le chemin de la bd à charger, à quitter le programme et à le relancer, avec les bon paramètres, afin que le chargement se fasse directement (c est porcasse, je l'avoue).
    Le problème que j'ai est que je n'arrive pas à quitter le programme en cours, et à lancer tout de suite après le nouveau programme avec les paramètres.
    Quelqu'un aurait il une indication ? ou une solution pour mon problème ?
    Merci d'avance !


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Août 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 118
    Points : 142
    Points
    142
    Par défaut
    Bonjour,

    Derby est un produit magnifique, avec des performances, et un support du SQL excellent. Ceci dit, il me semble qu'il n'existe qu'un seul bon usage de la version embarquée du pilote. En effet celui-ci est tres restrictif.
    + Ouvrir une connexion vers une base de donnée sous forme d'un singleton en debut de programme (prévoir le cas ou une seconde JVM serait lancée)
    + Fermer la connexion en fin de programme

    Si cet usage est trop restrictif pour ton application, je te conseillerai d'utiliser le pilote serveur, qui offre un service plus normal ou de repenser ton application ou de regarder du côté de HSQL (que je ne connais pas).

    Ce que je dis est le fruit de ma maigre experience et ne serait bien sur avoir valeur de verité.

    Joris

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    j ai effectivement un singleton pour ma connexion a la base données, et je fais comme tu as dit.
    Comment charger une autre base de données en plein fonctoinnement de mon programme ?

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Août 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 118
    Points : 142
    Points
    142
    Par défaut
    Je vois pas trop où est le probleme. J'ai fait un petit test chez moi qui marche bien :
    J'ai deux bases :
    +base1
    +base2
    Je teste avec le code suivent :

    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
     
    import java.sql.*;
    class Bases {
       static Connection connection;
       static boolean isConnect = false;
       public Bases(){
    	base1();
    	printConnection();
    	base2();
    	printConnection();
       }
       void base1() {
       	try {
    		if(isConnect){connection.close();isConnect = false;}
    		Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
    		connection = DriverManager.getConnection("jdbc:derby:base1");
    	} catch (Exception e) {System.out.println(e);}
    	isConnect = true;
       } 
       void base2() {
       	try {
    		if(isConnect){connection.close();isConnect = false;}
    		Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
    		connection = DriverManager.getConnection("jdbc:derby:base2");
    	} catch (Exception e) {System.out.println(e);}
    	isConnect = true;
       } 
      void printConnection(){
      	try {
      		System.out.println(connection.getMetaData().getURL());
    	} catch (Exception e) {System.out.println(e);}
      }
      public static void main(String[] args){ new Bases();}
    }
    J'èspere que ça peut t'aider.
    A+
    Joris

Discussions similaires

  1. [Derby] Requete date courante sur un champ Timestamp
    Par spekal dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/09/2006, 10h54
  2. Réponses: 1
    Dernier message: 04/04/2006, 10h28
  3. [jdbc] derby ou hsqldb ?
    Par romuluslepunk dans le forum JDBC
    Réponses: 7
    Dernier message: 12/10/2005, 18h01
  4. Réponses: 17
    Dernier message: 15/10/2003, 01h45

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