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 :

Débutant BDD en galère


Sujet :

JDBC Java

  1. #1
    Invité
    Invité(e)
    Par défaut Débutant BDD en galère
    Bonjour,

    Je débute dans les bases de données, j'ai eu un cours sur Access mais bon la j'aimerai créer un programme qui utilise une base de donnée.

    Mon application Java servira à calculer des coût de fabrication grâce à toutes les données financières liées à cette fabrication (machines utilisé, heures de travail, prix du local etc). Pour gérer ces information, je souhaiterai utiliser une base de données, j'ai donc cherché et mon choix s'est porté sur une base de données embarqué pour avoir une portabilité, et surtout car je souhaite que l'installation de l'application sur un poste soit le plus simple. A l'avenir, il est possible que cette idée change, mais pour l'instant je souhaite quelque chose de basique.

    Mon choix c'est porté sur HSQLDB j'ai d'ailleurs vu ce tuto : https://baptiste-wicht.developpez.co.../java/db/hsql/
    Mais aussi plusieurs autres, cependant je n'arrive pas à grand chose.

    1) Mon premier problème est lié à l'ajout suppression de données qui semble fonctionner mais en fait non
    2) Mon second vient de la non fermeture de la base de donnée

    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
     
    public static void main(String[] args) throws Exception {
     
    		Class.forName("org.hsqldb.jdbcDriver").newInstance();
     
    		Connection c = DriverManager.getConnection("jdbc:hsqldb:file:database", "SA", "");
     
    		Statement statement = c.createStatement();
    		statement.executeUpdate("CREATE TABLE TEST (Colonne1 INT, Colonne2 INT)");
    		statement.executeUpdate("INSERT INTO TEST (Colonne1, Colonne2) VALUES (1,2) ");
     
    		ResultSet resultat = statement.executeQuery("SELECT * FROM TEST");
    		while(resultat.next()){
    			System.out.println(resultat.getString("Colonne1")) ;
    		}
    		statement.close();
    		c.close();
    	}
    1)Dans un premier temps j'effectue la méthode tel quel, puis dans un second je met en commentaire les executeUpdate et je lance à nouveau la méthode. Dans le premier cas bien entendu j'ai "1" qui s'affiche dans la console, mais au second lancement, il ne trouve pas la Table TEST, pourqoi ?

    2)Régulièrement mais pas systématiquement, lorsque je j'exécute il me dit :

    Exception in thread "main" java.sql.SQLException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@f1b20702[file =C:\Users\morga\eclipse-workspace\BDD\database.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception: checkHeartbeat(): lock file [C:\Users\morga\eclipse-workspace\BDD\database.lck] is presumably locked by another process.
    Il semblerai donc que la base ne se ferme pas correctement, ce qui expliquerai est peut être une cause du premier problème non ?

    Enfin bref je suis un peu embêté par ça, ça vous paraîtra peut être stupide, mais c'est la première fois que je me penche sur la gestion de base de donnée en Java.
    Dernière modification par wax78 ; 18/10/2018 à 15h10.

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Avec HSQL il faut explicitement fermer la bdd sinon tu as précisément ce genre de problèmes: http://hsqldb.org/doc/guide/running-...rgc_closing_db c'est lié au fait que la bdd n'a pas son cycle de vie à elle, elle démarre en même temps que l'appli java qui l'utilise et ne vit pas plus longtemps. Donc, il faut lui "dire" de faire toute ses écritures en attente afin de pouvoir faire un "clean shutdown"

    Sinon avec des "vraies" base de données, ce n'est pas nécessaires

  3. #3
    Invité
    Invité(e)
    Par défaut
    Haaa MERCI ! C'est tellement con des petits trucs comme ça des fois !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question de débutant : BDD Vs Fichier texte
    Par Beginner. dans le forum Débuter
    Réponses: 8
    Dernier message: 02/11/2014, 11h45
  2. Débutant- BdD sur pda et Windev
    Par Basicnav dans le forum Windev Mobile
    Réponses: 2
    Dernier message: 12/01/2010, 11h21
  3. Aide VBA quiz - débutant en pleine galère
    Par VBA Lover 86 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/11/2009, 18h15
  4. [Débutant BDD] ADO ou ODBC?
    Par Pedro dans le forum Bases de données
    Réponses: 10
    Dernier message: 23/02/2006, 21h12
  5. [Débutant] Tester une connection sur bdd
    Par lando dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/09/2003, 14h37

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