hsqldb Fehler - unknown source

ForenDaddy

Aktives Mitglied
ich versuche jetzt seit stunden eine hsql datenbank zum laufen zu bringen.
sie soll einfach lokal auf dem rechner laufen.
nach dem durchforsten von einem dutzend tutorials, komme ich zu der erkenntnis, dass es jeder anders macht und ich anscheinend nicht richtig.

ich habe mich an dem tutorial von hsqldb.org orientiert:
Programming For Future: Using HyperSQL (HSQLDB)

aber irgendwas stimmt nicht. ich bekomme egal was ich mache, diese fehler:
Java:
java.sql.SQLException: unexpected token: (
        at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
        at fcp.Logic.FCP_System.dbVerbindungLokal(FCP_System.java:128)
        at fcp.Logic.FCP_System.main(FCP_System.java:58)
Caused by: org.hsqldb.HsqlException: unexpected token: (
        at org.hsqldb.error.Error.parseError(Unknown Source)
        at org.hsqldb.ParserBase.unexpectedToken(Unknown Source)
        at org.hsqldb.ParserDDL.compileCreateTableBody(Unknown Source)
        at org.hsqldb.ParserDDL.compileCreateTable(Unknown Source)
        at org.hsqldb.ParserDDL.compileCreate(Unknown Source)
        at org.hsqldb.ParserCommand.compilePart(Unknown Source)
        at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
        at org.hsqldb.Session.executeDirectStatement(Unknown Source)
        at org.hsqldb.Session.execute(Unknown Source)
        ... 4 more

ich bin die ganze anleitung schritt für schritt durchgegangen und habe nach möglichkeit nur die pfade geändert.
leider steht in der anleitung kaum information, was eigentlich was genau bedeutet.
daher bin ich jede mögliche kombination mal durchgegangen. aber die fehlermeldungen ändern sich einfach nicht.

hier mein code, für einen kleinen test, der leider noch nicht funktioniert:
Java:
package fcp.Logic;
import java.util.*;
import java.io.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class FCP_System {
    public static String dbURL = "C:\\Dokumente und Einstellungen\\user\\pap\\db\\hsqldb\\";


    public static void main(String[] args) {
        dbVerbindungLokal();
    }

    /*
     * Stellt eine Verbindung zur lokalen Datenbank her.
     *
     * @return void
     */
    public static void dbVerbindungLokal() {
        Connection dbVerbindung = null;

        try {
            try {
                Class.forName("org.hsqldb.jdbcDriver").newInstance();
            } catch (InstantiationException ex) {
                Logger.getLogger(FCP_System.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(FCP_System.class.getName()).log(Level.SEVERE, null, ex);
            }

        } catch( ClassNotFoundException e ) {
            e.printStackTrace();
        }
        
        try {
            dbVerbindung = DriverManager.getConnection( "jdbc:hsqldb:dbURL", "sa", "" );
            Statement sqlbefehl = dbVerbindung.createStatement();
            sqlbefehl.executeUpdate( "CREATE TABLE Benutzer (FahrerNr integer(50),Vorname char(50),Nachname char(50),Passwort char(50)"
                                      + "PRIMARY KEY(FahrerNr)" );
            ResultSet result = sqlbefehl.executeQuery( "SELECT * FROM Benutzer" );
            while ( result.next() ) {
                System.out.println( result.getString(1) + " : " + result.getString(2) + " : " + result.getString(3) + " : " + result.getString(4) );
                result.close();
                sqlbefehl.close();
            }
        } catch( SQLException e ) {
            e.printStackTrace();
        } finally {
            if ( dbVerbindung != null ) {
                try {
                    dbVerbindung.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
Fehler werden in Zeile 13 und 40 angezeigt, verursacht durch eine hsqlException(Unknown Source).

Ich schätze, er findet die Datenbank nicht (Unknown Source).
Aber ich weiss nicht was am Code fehlt?
Ich denke auch ich habe die Anleitungen richtig befolgt. Leider sind die Anleitung auch gleichzeitig lückenhaft, so dass ich mir nicht sicher sein kann, ob die Rückmeldungen die ich erhalte richtig sind.
 
S

SlaterB

Gast
meine Güte, auf Zeile 40 bist du schon gekommen mit einer immer verdächtigen Datenbankabfrage,
[c]sqlbefehl.executeUpdate( "gfskglkj");[/c]
würde schließlich auch kompilieren und erst zur Laufzeit eine Fehlermeldung geben,

dann hast die Info 'unexpected token: (', was dir selbst bei kompletter Unkenntnis doch wenigstens sagen sollte 'wie sieht es eigentlich mit Klammern aus?',
wiederum in der SQL-Query, nicht im Java-Code, sonst würde das ganze ja überhaupt nicht kompilieren

reicht diese Verdeutlichung der Offensichtlichkeiten nun doch, selber nachzuschauen und den Fehler im SQL zu finden?
ansonsten für weitere Tipps zur Strafe mindestens bis morgen warten ;)

> Ich schätze, er findet die Datenbank nicht (Unknown Source).

Unknown Source heißt, dass nicht die genaue Zeilennummer im Java-Code z.B. der Klasse org.hsqldb.error.Error mit Methode parseError() angegeben werden kann,
bei deinen Klassen ist für StackTrace-Einträge dagegen die Zeilennummer angegeben,
ist normal für fremde Libraries wie den DB-Treiber, Zeilennummer dort nicht wichtig
 
Zuletzt bearbeitet von einem Moderator:

ForenDaddy

Aktives Mitglied
habs gefunden.
wie erwartet, hat die angabe des datenbankpfades nicht gestimmt.
natürlich so blöd von mir geschrieben, dass ich es ständig überlesen habe.

anstatt:
Java:
public static String dbURL = "C:\\Dokumente und Einstellungen\\user\\pap\\db\\hsqldb\\";
und
Java:
dbVerbindung = DriverManager.getConnection( "jdbc:hsqldb:dbURL", "sa", "" );

muss es heissen:
Java:
public static String dbURL = "jdbc:hsqldb:file:C:\\Dokumente und Einstellungen\\user\\pap\\db\\hsqldb\\;shutdown:true";
und
Java:
dbVerbindung = DriverManager.getConnection( dbURL, "sa", "" );
da waren die "" bei dbVerbindung einfach zu viel.
das shutdown=true sorgt dafür, dass die datenbank persistent bleibt, die daten also nicht verloren gehen beim nächsten starten.

DANACH wird es erst relevant ob die queries stimmen.
Aber dazu kam ich vorher ja erst gar nicht.

ERLEDIGT.
 
S

SlaterB

Gast
komplett so ist das ein bisschem im Wiederspruch zur Fehlermeldung mit StackTrace 'org.hsqldb.ParserDDL.compileCreateTable'
also durchaus schon mit der konkreten Verarbeitung des CREATE TABLE-SQL beschäftigt

aber bei gelösten Themen soll man nicht meckern, ich setze auch die Markierung 'Erledigt'
 

fastjack

Top Contributor
Der Stacktrace gibt es ja auch an:

Code:
org.hsqldb.jdbc.JDBCStatement.executeUpdate

also Query falsch.

-->

Code:
        at org.hsqldb.error.Error.parseError(Unknown Source)
        at org.hsqldb.ParserBase.unexpectedToken(Unknown Source)
        at org.hsqldb.ParserDDL.compileCreateTableBody(Unknown Source)
        at org.hsqldb.ParserDDL.compileCreateTable(Unknown Source)
        at org.hsqldb.ParserDDL.compileCreate(Unknown Source)

Java:
    dbVerbindung = DriverManager.getConnection( "jdbc:hsqldb:dbURL", "sa", "" );

funktioniert auch, nur das eine DB namens "dbURL" erzeugt wird, und zwar im Speicher und nicht im Dateisystem.
 

ForenDaddy

Aktives Mitglied
das query mag ein problem gewesen sein, aber es war das kleinste.
nach dem ich die queries korrigierte hatte lief immer noch nichts.
somit sind sie nicht die eigentliche wurzel des übels gewesen.
nach dem ich dann den fehler gefunden hatte, habe ich noch einmal query fehler eingebaut.
dann werden die fehlermeldungen sehr viel eindeutiger und lassen sich schnell beheben.
aber vorher ging halt gar nichts.

@fastjack
deshalb habe ich auch die korrektur auf :file: gemacht
Java:
public static String dbURL = "jdbc:hsqldb:file:C:\\Dokumente und Einstellungen\\user\\pap\\db\\hsqldb;shutdown:true";
jetzt heisst die datenbank hsqldb. total erfindungsreich :D
 
Zuletzt bearbeitet:
S

SlaterB

Gast
ist das Thema beendet? die Markierung 'Erledigt' wurde wieder entfernt, fälschlicherweise?
 

ForenDaddy

Aktives Mitglied
der dateiname ist jetzt hsqldb.
ich hätte auch:
Java:
public static String dbURL = "jdbc:hsqldb:file:C:\\Dokumente und Einstellungen\\user\\pap\\db\\hsqldrucktgeld;shutdown:true";
nennen können. dann würde die datei der datenbank "hsqldrucktgeld" heissen.
was ja nicht wirklich die funktionsweise von hsql ist :lol:
 

ForenDaddy

Aktives Mitglied
sag ich ja, ist der datenbankname.
ein name hat mit der funktion aber nichts zu tun.
ansonsten hätte mein beispiel die funktion, dass sie geld druckt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Fehler in der HSQLDB Datenbankprogrammierung 6
I HSQLDB HSQLDB 2.5.0 - Wie Loggen abstellen? Datenbankprogrammierung 4
B HSQLDB - auto_increment als unexpected token ? Datenbankprogrammierung 1
E Abfrage auf HSQLDB Datenbankprogrammierung 4
windl MySQL und HSQLDB Datenbankprogrammierung 4
D HSQLDB HSQLDB in PHP-Projekt einbinden? Datenbankprogrammierung 7
I Inhalt einer hsqldb anzeigen Datenbankprogrammierung 1
G java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver Datenbankprogrammierung 4
M HSQLDB oder DERBY - warum SCRIPT Datei? Datenbankprogrammierung 0
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
E HSQLDB Eclipse + Geronimo + HSQLDB = org.hsqldb.jdbcDriver in classloader Datenbankprogrammierung 5
M HSQLDB 2.0 - wie tmp-Verzeichnis löschen Datenbankprogrammierung 2
S HSQLDB DELETE-Statement funktioniert nicht Datenbankprogrammierung 4
M Bei HSQLDB etwas wie OPTIMIZE TABLE? Datenbankprogrammierung 2
F HSQLDB HSQLDB lässt mich nicht auf erstellte Tabelle zugreifen Datenbankprogrammierung 12
D datenbank (hsqldb) in runnable jar einbinden Datenbankprogrammierung 2
E Herangehensweise Neues Projekt mit Netbeans / HSQLDB / JPA Datenbankprogrammierung 3
T Hsqldb: java.lang.NoClassDefFoundError: org/hsqldb/Server Datenbankprogrammierung 2
F Kann keine Verbindung mit HSQLDB aufbauen Datenbankprogrammierung 2
S HSQLDB Kopiere Tabellen Datenbankprogrammierung 2
H hsqldb - Database must be shutdown Datenbankprogrammierung 10
O HSQLDB Verbindung schlägt fehl Datenbankprogrammierung 3
K Jpa hsqldb Datenbankprogrammierung 1
N Problem mit HSQLDB Datenbankprogrammierung 5
N Hsqldb und text tables source not found Datenbankprogrammierung 5
B HSQLDB Datenbank Manager Datenbankprogrammierung 19
R SELECT aus hsqldb mit Parameter Datenbankprogrammierung 2
R HSQLDB Datenbankprogrammierung 10
G hsqldb datenspeicherung Datenbankprogrammierung 2
D H2 DB oder doch HSQLDB ? Datenbankprogrammierung 2
A HSQLDB Performance bei erstem Zugriff Datenbankprogrammierung 6
G HSQLDB überprüfen, ob Tabelle bereits existiert Datenbankprogrammierung 3
@ HSQLDB: socket creation error Datenbankprogrammierung 6
G HSQLDB Files Datenbankprogrammierung 5
G maximale Einträge in HSQLDB Datenbankprogrammierung 7
A Datenspeicherung in hsqldb Datenbankprogrammierung 22
A Umgang mit hsqldb Datenbankprogrammierung 24
A Problem mit der Anbindung zur hsqldb Datenbankprogrammierung 18
J HSQLDB ohne JDBC Datenbankprogrammierung 8
C Keine Verbindung zu HSQLDB möglich Datenbankprogrammierung 22
G Probleme mit Laden des JDBC-Treiber in HSQLDB Datenbankprogrammierung 2
G HSQLDB - kann mir jemand Packages erstellen? Datenbankprogrammierung 6
B HSQLDB und die log-Datei Datenbankprogrammierung 10
W HSQLDB Datenbankprogrammierung 6
G HSQLDB als Dateien anlegen Datenbankprogrammierung 5
S nullpointerexception bei HSQLDB Datenbankprogrammierung 4
L HSQLDB sichern (import und export von DB) Datenbankprogrammierung 3
D HSQLDB in JAR Datenbankprogrammierung 3
S hsqldb und ant Datenbankprogrammierung 3
S Hsqldb java.lang.NullPointerException Datenbankprogrammierung 2
D HSQLDB 2xPK + AutoInc Datenbankprogrammierung 22
M HSQLDB Server Problem Datenbankprogrammierung 2
T HSQLDB => diverses Datenbankprogrammierung 21
L persistentes Speichern von Daten in der HSQLDB ? Datenbankprogrammierung 5
A Weitere Fragen zu hsqldb Datenbankprogrammierung 6
A Text-Tabellen in HSQLDB Datenbankprogrammierung 9
A HSQLDB Datenbankprogrammierung 10
A Hsqldb ClassDefNotFound Datenbankprogrammierung 2
M Problem mit HSQLDB Datenbankprogrammierung 2
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
G Problem mit der Startenzeit einer HSQLDB Datenbankprogrammierung 4
T HSQLDB, wie mache ich das mit hsqldb.cache_scale? Datenbankprogrammierung 13
E BufferedImage in hsqldb speichern Datenbankprogrammierung 5
B HSqlDb Datenbankprogrammierung 2
X HSQLDB und Variablen Datenbankprogrammierung 7
R hsqldb: performance, große tabellen und so Datenbankprogrammierung 10
P DERBY vs HSQLDB (Vor- Nachteile) Datenbankprogrammierung 3
EagleEye INSERT INTO Problem mit HSQLDB Datenbankprogrammierung 8
G Vector in hsqldb schreiben Datenbankprogrammierung 5
M Cast-Problem - HSQLDB Datenbankprogrammierung 3
C HSQLDB korrekter Shutdown Datenbankprogrammierung 2
C hsqldb Befehle in Java Datenbankprogrammierung 19
P HSQLDB Mehrbenutzerbetrieb Datenbankprogrammierung 7
D HSQLDB Datenbank Zugriff! Datenbankprogrammierung 4
H javaw bleibt bei hsqldb hängen Datenbankprogrammierung 12
D HSQLDB installieren ... Datenbankprogrammierung 8
T Cast-Fehler: Spring Data exists.... boolean??? Datenbankprogrammierung 1
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
O Create Table per JDBC Fehler: ORA-00922 Datenbankprogrammierung 4
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
S @OneToMany @JoinTable failed to lazily initialize a collection Fehler Datenbankprogrammierung 2
C Oracle Fehler beim list.add() Datenbankprogrammierung 5
das_leon MySQL Fehler bei der Zeitzone Datenbankprogrammierung 7
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
DaCrazyJavaExpert Derby/JavaDB Unfindbarer Fehler im Datenbank-Code Datenbankprogrammierung 87
L SQL Fehler (Table/View does not exist) Datenbankprogrammierung 17
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
Thallius MySQL Wo ist der Fehler in dem Query? Datenbankprogrammierung 2
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
V Fehler beim Generierung Fehler beim Generierung java.lang.ArrayIndexOutOfBoundsException: 0 Datenbankprogrammierung 12
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
H HSQLDB Beim öffnen folgender Fehler: ... java.lang.NullPointerException Datenbankprogrammierung 1
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
W Jackcess Fehler Datenbankprogrammierung 1
I Fehler bei Ausgabe der Daten aus der DB Datenbankprogrammierung 3
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
serjoscha MySQL Eine Instanz von eigenem DBWrapper -> Fehler durch mehrfachbenutzung möglich? Datenbankprogrammierung 2
M Wo ist mein Fehler ? o: Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben