Kann keine Verbindung zur Datenbank herstellen oder mit der ucanaccess-Methode im Applet in die Datenbank einfügen

8

Beim Verbinden eines Applets mit einer Access DB mit der Methode jdbc: ucanaccess erhalte ich den folgenden Fehler:

%Vor%

Der Code, den ich für das Applet verwendet habe, ist wie folgt ( add() und setBounds() werden aus init() entfernt):

%Vor%

Hinweis: Java-Version "1.8.0_141"

Warum erhalte ich diesen Fehler?

    
Shibin Raju Mathew 17.09.2017, 19:40
quelle

3 Antworten

5

Ihr Code hat zwei schwerwiegende Fehler:

  1. value ist kein gültiges SQL-Schlüsselwort. Es sollte values sein. [Bei der nachfolgenden Bearbeitung der Frage behoben.]
  2. Ihr dynamisches SQL generiert Befehlstext mit ungültiger Syntax (nicht angekreuztes Zeichenfolgenliteral).

Außerdem ist user ein reserviertes Wort (Funktionsname). Wenn Sie es also als Tabellennamen verwenden möchten, sollten Sie es in eckige Klammern einschließen.

Die richtige Lösung für die Ausgabe von # 2 ist die Verwendung einer parametrisierten Abfrage , z. B.

%Vor%     
Gord Thompson 17.09.2017 22:40
quelle
2

Dies ist ein Kompilierungsfehler, dh Sie müssen entweder Ihre stmt.executeUpdate(sql); mit try-catch-Anweisung umgeben oder Ihre Methode sollte eine SQLException :

ausgeben %Vor%

oder

%Vor%

BEARBEITEN: Übrigens sehe ich nicht, ob Sie die Oracle JDBC-Treiberklasse für UCanAccess laden oder registrieren, bevor Sie die Datenbankverbindung öffnen:

%Vor%

Also hast du es oder nicht? Wenn nein, sollten Sie es hinzufügen, bevor Sie Ihre Verbindung erhalten:       con = DriverManager.getConnection("jdbc:ucanaccess://H:/test/db.mdb");

    
Armine 27.09.2017 16:16
quelle
0

Die Nachricht

%Vor%

sieht wie ein Kompilierfehler aus, also lautet die Frage: Wie kompilieren / deployen Sie die Applet-Klassen und wo genau sehen Sie diese Fehlermeldung? IDEs wie Eclipse erstellen Klassen-Dateien auch im Falle von Kompilierungsfehlern, die die Fehlermeldung enthalten und ausgeben, die Sie auch in der IDE sehen können. Vielleicht gelingt es Ihnen nicht, die Applet-Klassen zu aktualisieren und am Ende mit den gleichen alten Klassen zu testen, anstatt mit den geänderten Klassen, die immer wieder zur selben Nachricht führen.

Wenn Sie das Applet als Teil einer Webanwendung bereitstellen, kann der HTTP-Server die Klassendatei zwischenspeichern, wenn die Webanwendung als WAR-Datei bereitgestellt wurde. Außerdem tendieren Browser dazu, Klassendateien ziemlich aggressiv zwischenzuspeichern, so dass Sie sicherstellen sollten, dass der Cache des Browsers jedes Mal leer ist, wenn Sie einen neuen Test starten.

    
Lothar 26.09.2017 15:07
quelle