HSQLDB schreibt Daten nicht richtig

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • HSQLDB schreibt Daten nicht richtig

    Liebe OSX Entwicklergemeinde,

    nachdem ich im Moment auf der Suche bin nach Programmiersprachen und Verfahren (siehe auch ) bin ich bei HSQLDB hängen geblieben.

    Ich habe jetzt mal aus der Doku und Material aus dem Internet eine Klasse zusammengehackt, mit der ich eine Tabelle fülle und danach wieder auslesen. Geht soweit gut. Wenn ich aber nur meine Methode ausführen, welche die Datenbank auslesen soll, bleibt die Ausgabe leer.

    Das habe ich auch mit dem mitgelieferten Datenbankmanager geprüft. Die Datenbank ist leer, nachdem das Programm fertig ist.

    Ich komme einfach nicht drauf, wieso die Daten nicht gepeichert werden. In einem neuen Verzeichnis geht es auch nicht. Muss ich das villeicht noch einen speziellen Befehl ausser Update benutzen, um die Daten wegzuschreiben?

    Ich setze mal die Klasse rein, die ich bisher geschrieben habe.

    Mein System:
    Eclipse 3.2
    Neuste HSQLDB
    Rechte auf dem Verzeichnis mit den Datenbankdateien: -rw-r--r--
    Der Pfad zur Datenbank im Quelltext unten dran ist fiktiv.

    Java-Quellcode

    1. import java.sql.*;
    2. import java.util.logging.*;
    3. public class TestHSQLDB {
    4. static Logger log = Logger.getLogger("de.myname.UseHSQLDB");
    5. static Connection con;
    6. /**
    7. * @param args
    8. */
    9. public static void Datenbankoperationen(){
    10. try{
    11. Statement stmt = con.createStatement();
    12. String sqlQuery ="CREATE TABLE cdShop (cdNr INTEGER, cdArtist CHAR(20), cdTitle CHAR(20));";
    13. ResultSet rs = stmt.executeQuery(sqlQuery);
    14. sqlQuery = "INSERT INTO cdShop VALUES (1,'Groeni','Mensch')";
    15. rs = stmt.executeQuery(sqlQuery);
    16. sqlQuery = "INSERT INTO cdShop VALUES (2,'Sting','Fields of Gold')";
    17. rs = stmt.executeQuery(sqlQuery);
    18. sqlQuery = "INSERT INTO cdShop VALUES (3,'Bach','Pluratorium')";
    19. rs = stmt.executeQuery(sqlQuery);
    20. sqlQuery = "UPDATE cdShop SET cdTitle='W-Oratorium' WHERE cdNr=1";
    21. rs = stmt.executeQuery(sqlQuery);
    22. sqlQuery = "SELECT * FROM cdShop";
    23. rs = stmt.executeQuery(sqlQuery);
    24. System.out.println("\n\n\nCD Shop DB\n=============\n");
    25. int counter = 0;
    26. while (rs.next()) {
    27. System.out.println(counter++ +".Datensatz:");
    28. int cdNr = rs.getInt("cdNr");
    29. System.out.println("\t[cdNr ->" + cdNr + "]");
    30. String cdArtist = rs.getString("cdArtist");
    31. System.out.println("\t[cdArtist ->" + cdArtist + "]");
    32. String cdTitle = rs.getString("cdTitle");
    33. System.out.println("\t[cdTitle ->" + cdTitle + "]\n");
    34. }
    35. }
    36. catch (Exception e) {
    37. System.err.println(e.toString());
    38. log.log(Level.WARNING, "Konnte Datenbankoperation nicht ausführen!");
    39. return;
    40. }
    41. }
    42. public static void Datenbankauslesen(){
    43. try{
    44. Statement stmt = con.createStatement();
    45. String sqlQuery ="SELECT * FROM cdShop";
    46. ResultSet rs = stmt.executeQuery(sqlQuery);
    47. int counter = 0;
    48. while (rs.next()){
    49. System.out.println(counter++ +".Datensatz:");
    50. int cdNr = rs.getInt("cdNr");
    51. System.out.println("\t[cdNr ->" + cdNr + "]");
    52. String cdArtist = rs.getString("cdArtist");
    53. System.out.println("\t[cdArtist ->" + cdArtist + "]");
    54. String cdTitle = rs.getString("cdTitle");
    55. System.out.println("\t[cdTitle ->" + cdTitle + "]\n");
    56. }
    57. }
    58. catch (Exception e) {
    59. System.err.println(e.toString());
    60. log.log(Level.WARNING, "Konnte Datenbankoperation nicht ausführen!");
    61. return;
    62. }
    63. }
    64. public static void main(String[] args) {
    65. try {
    66. Class.forName("org.hsqldb.jdbcDriver");
    67. con = DriverManager.getConnection("jdbc:hsqldb:/pfad/zur/Datenbank/Java_lernen/daten/testDB","sa","");
    68. //);
    69. log.log(Level.INFO, "JDBC Driver successfully loaded!");
    70. //Datenbankoperationen();
    71. Datenbankauslesen();
    72. con.close();
    73. log.log(Level.INFO, "Datenbankverbindung wurde geschlossen!");
    74. }
    75. catch (Exception e) {
    76. System.err.println(e.toString());
    77. log.log(Level.WARNING, "Treiber konnte nicht geladen werden");
    78. return;
    79. }
    80. }
    81. }
    Alles anzeigen


    danke fürs anschauen
    wuschel
    hello world!