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
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 ?
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(); }
2)Régulièrement mais pas systématiquement, lorsque je j'exécute il me dit :
Il semblerai donc que la base ne se ferme pas correctement, ce qui expliquerai est peut être une cause du premier problème non ?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.
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.
Partager