Hallo, ich habe mir in SQL eine kleine Datebank gemacht, und möchte mich mit Java damit verbinden. Dies ist mein erster Versuch mit Datenbanken. Wenn ich in Eclipse [c] public class d { /** * @param args */ public static void main(String[] args) { Class.forName("org.hsqldb.jdbcDriver"); Connection con = DriverManager.getConnection("jdbc.hsqldb:file:c:\te.db");
1 | public class d { |
2 | |
3 | /**
|
4 | * @param args
|
5 | */
|
6 | public static void main(String[] args) { |
7 | Class.forName("org.hsqldb.jdbcDriver"); |
8 | Connection con = |
9 | DriverManager.getConnection("jdbc.hsqldb:file:c:\ddd.db3"); |
10 | }
|
11 | |
12 | }
|
Fehler: Exception in thread "main" java.lang.Error: Unresolved compilation problem: Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ) at d.main(d.java:9) Was mache ich falsch?
DriverManager.getConnection("jdbc.hsqldb:file:c:\\ddd.db3"); so? Dann kommt der Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problems: Connection cannot be resolved to a type DriverManager cannot be resolved at d.main(d.java:8)
welches wäre das? Ich hab mal import java.sql.*; import java.io.*; import java.util.*; drüber geschrieben, aber weiterhin Fehler. Muss man in Windows eigentlich noch was verstellen? Was mach ich falsch?
Das ist ebend das Problem wenn man gleich mit einer IDE anfängt. Wenn du es auf der kommandozeile kompilierst sehen die Fehlermeldungen hilfreicher aus. Ich würde erstmal mit einem "Hallo World" anfangen, dennn für SQL und java braucht man ein paar Grundlagen. Wie gehen ich mit Exeption um? ist es überhaupt sinnvoll das Programm in die main zu schreiben?
1 | import java.sql.*; |
2 | |
3 | public class d { |
4 | public static void main(String[] args) { |
5 | try { |
6 | Class.forName("org.hsqldb.jdbcDriver"); |
7 | Connection con = DriverManager.getConnection("jdbc.hsqldb:file:c:\\ddd.db3"); |
8 | } catch ( Exception ex ) { |
9 | } |
10 | } |
11 | } |
Danke für deine Hilfe. Die Java Grundlagen kenne ich schon. So klappt es auch ohne Fehler. Allerdings kann ich es nicht laufen lassen. Die Meldung wieder angehängt. Danke
P.S. das buch, das ich benutze hat es auch in der main, daher hab ich es da drin.
Haha du kennst also die Grundlagen, aber erkennt nicht das die Meldung überhaupt nichts mit dem Programm zu tun hat sondern das Eclipse ein Problem mit dem Zeichensatz beim Speichern einer Datei hat?
ich bin kein Freak, bisher kam dieser Fehler noch nicht und ich weiß nicht was ich machen soll, damit es läuft. Ich habe bisher eine Vorlesung zu Java gehabt, und möchte nun für die nächste etwas vorarbeiten.
hsql ist eine Krankheit, nimm "derby.jar" (IBM) alias cloudscape. Mit dem Fehler hat es freilich nix zu tun, aber mit den samples kommst du weiter. Kennst du http://www.squirrelsql.org/. Ein Frontend für alle Dingens für die es ein jdbc interface gibt.
Sorry bei Eclipse kann ich nicht helfen. Kann nur vermuten das beim Kopieren aus dem Internet sich ein ungültiges Zeichen eingeschlichen hat. mache mal die Datei leer und schreibe den kompletten Inhalt ab (das Trainert gleich).
okay danke ich glaub es klappt. Vielen Dank für Eure Hilfe soweit. Und in der Datei ddd.db3 sollen jetzt einfach die SQL Befehle stehen, die meine Tabelle definieren? Im Internet und in den Büchern steht man muss noch ODBC Treiber installieren, und in der Systemsteuerung hinzufügen, was hat es damit auf sich, wieso klappt es hier ohne diese Sachen?
was in der Datei ddd.db3 steht entscheidet der Treiber ( org.hsqldb.jdbcDriver ) es kann klartext oder auch nur unlesbare Daten sein. Einen ODBC Treiber braucht du nur wenn du über ODBC auf die Datenbank zugreifen willst, java bringt in den meisten Fällen aber seinen eigenen Treiber mit, für java braucht du also kein ODBC. ODBC braucht du wenn du z.b. mit Excel oder Access auf die Datenbank zugreifen willst.
Aber wenn ich jetzt mit SQL auf die Datenbank zugreifen möchte, muss die doch auch richtig erstellt sein(wenn ich z.B. einen neuen Eintrag machen möchte usw) , verstehe ich das richtig, dass man die Datenbank vorher erstellen muss? Oder kann ich jetzt in Java beginnen, die Tabellen zu erzeugen?
Wenn ich den Code von eben ausführe wird die Exception ausgelöst, das sollte im Normalfall doch eigentlich nicht sein, oder?
> wird die Exception ausgelöst
und warum schreibst du nicht hin, wie die Exception heist und welchen
Text sie hat?
Du hast jetzt erstmal eine Datenbankverbindung aufgebaut. Als erstes
muss du mit SQL eine Tabelle erzeugen wo du die Werte abspeichern
kannst.
Danke für deine Antwort.
1 | import java.sql.*; |
2 | |
3 | public class d { |
4 | public static void main(String[] args) { |
5 | try { |
6 | Class.forName("org.hsqldb.jdbcDriver"); |
7 | Connection con = DriverManager.getConnection("jdbc.hsqldb:file:c:\\ddd.db3"); |
8 | |
9 | |
10 | } catch ( Exception ex ) { |
11 | System.out.println("huhu"); |
12 | }
|
13 | }
|
14 | }
|
Bei diesem Code wird "huhu" ausgegeben. Verstehe ich das richtig, dass das eigentlich nicht sein sollte? Ich weiß ja nicht was das für eine Exception ist...
Dann schau dir doch mal die Methoden von der Exception an. http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html Da wirst du bestimmt auch etwas finden, wie man den Text ein Exception ausgibt.
Ich hab System.out.println( ex.getMessage()); hinzugefügt. Ausgegeben wird org.hsqldb.jdbcDriver
Teste mal bitte mit printStackTrace oder toString, normalerweise sollte da etwas aussagekräftigeres rauskommen.
bei to. String kommt wieder java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver
das ist doch schon was, der ClassPath ist vermutlich falsch, er findet die Klasse "org.hsqldb.jdbcDriver" nicht.
wie kann ich schauen ob er falcsh ist? Ich habe ein neues Projekt gemacht, da tritt der Fehler wieder auf
Ich kenn jetzt org.hsqldb.jdbcDriver nicht, aber kann es sein das du dir es es runterladen musst? http://sourceforge.net/project/showfiles.php?group_id=23316 Dort bekommst du ein jar file (hsqldb.jar), das legst du in dein Programm verzeichniss.
also ich hab die Datei in das Workspace und in das Projekt kopiert, leider bleibt der Fehler
Java habe ich bloss mal private nebenbei gemacht. Ich finde Java persönlich nicht sehr schön. Für mich ist eine Datenbank erst eine wenn ein richtiger Server läuft( Mysql, Postgresql, Oracle, MSSQL) dann kreift man über eine Schnittstelle (ODBC, JDBC) darauf zu. Du sollest aber wirklich erstmal noch mit den Grundlagen zu java beschäftigen, alle wollen gleich ganz gross anfangen. Dazu gehört auch das lesen der doku von Sun und das selbständige lösen von Fehlern (auch mal ohne Goolge, einfach mit Probieren und dabei lernen). Was hilft es dir wenn dir jemand den Quellcode schreibt du aber bei jede kleinen Fehlermeldung andere Leute fragen muss.
habs irgendwie geschafft das jar zu importieren, danke;) jetzt noch huhu java.sql.SQLException: No suitable driver found for jdbc.hsqldb:file:c:\ddd.db3 at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at d.main(d.java:7)
Wiegesagt ich kenn Eclipse nicht, es sollte im "Arbeitsverzeichniss" der Anwendung liegen und im ClassPaht muss der "." eingetragen sein - bestimmt gibt ein in Eclipse ein jar mit einzugegen wo weiter Klassen liegen.
das jar hab ich jetzt einbezogen, eine exception java.sql.SQLException: No suitable driver found for jdbc.hsqldb:file:c:\ddd.db3 at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at d.main(d.java:7) kommt jetzt. Was könnte das sein?
mit Connection con = DriverManager.getConnection("jdbc.hsqldb:file:c:\\ddd.db3"); geht auch nich
zu deinem posting von eben: ich möchte einfach nur wissen, wie ich mich mit einer Datenbank verbinde, Befehle ausführe und daten auslesen kann. Ich möchte dabei nicht rumtüfteln, oder auf Probleme stoßen, ich möchte nur wissen wie es geht, ich will kein Ingenieur sein ;)
Warum dann Java? Dann installier die mysql und schon kannst du dich mit dem mysqlclient mit der DB verbinden und kannst sql-Befehle absenden. Ich vermute immer noch das der Treiber nicht richtig gefunden wird, habe jetzt aber keine Lust es hier nachzubauen.
Auch wenn es Dich annervt: Gib mal bei Google folgenden Suchstring ein: java.sql.SQLException: No suitable driver found for jdbc.hsqldb Gleich der erste Treffer... Gruß Markus P.S.: Vieleicht findest Du ja noch jemanden, der Dir 'ne fertige Lösung liefert...
aber du scheinst ja zu wissen, Markus, woran es liegt, was muss ich tun, damit es klappt? ODer ist das zuviel verlangt?
meine kristallkugel sagt hibernate um welches db-system gehts hier überhaupt?
@Daniel F. > meine kristallkugel sagt hibernate > um welches db-system gehts hier überhaupt? Eventuell sollte man den Thread erstmal durchlesen befor man kommentare abgibt.
Ich habe mir das hsqldb Paket jetzt runtergeladen. Dort ist eine Datei runManagerSwing.bat Wenn man diese startet öffnet sich ein Programm, wenn man dann bei URL jdbc:hsqldb:file:c:\neu angibt wird auf C eine Datei neu.script angelegt. Jetzt kann man sich verbinden, mit dieser Vorkehrung. Wenn ich jetzt mit dem Programm und der Datei an einen anderen PC gehe und dort in Eclipse das ganze ausführe, gibt's wieder einen Fehler. Muss man immer vorher das Programm hsqldb starten und einstellen? Das kann aber doch nicht im Sinne des Erfinders sein, dass derjenige der ein Programm bekommt erst noch mit dem Tool hsqldb rumspielen muss??!
Hallo, das Thema ist zwar schon etwas älter, ich hatte aber das gleiche (/ein ähnliches) Problem. Die folgende Exception wurde geworfen: java.sql.SQLException: No suitable driver found for jdbc:hsqldb:mem:testdb Der "Java Buld Path" war in Eclipse korrekt eingestellt. (Projekt -> Properties -> Java Build Path -> Libraries -> Add External JARs... : Pfad zu "hsqldb.jar" richtig angegeben) Anfangs habe ich versucht die Datenbank auf die folgende Weise zu öffnen:
1 | Connection connection = null; |
2 | |
3 | try { |
4 | connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "SA", ""); |
5 | } catch (Exception e) { |
6 | System.out.println("ERROR: failed to connect HSQLDB JDBC driver."); |
7 | e.printStackTrace(); |
8 | }
|
Bei mir hat's erst funktioniert, als ich zuvor noch die statische Methode static Class<?> forName(String className) aufgerufen habe:
1 | Connection connection = null; |
2 | |
3 | try { |
4 | Class.forName("org.hsqldb.jdbcDriver"); |
5 | } catch (Exception e) { |
6 | System.out.println("ERROR: failed to load HSQLDB JDBC driver."); |
7 | e.printStackTrace(); |
8 | }
|
9 | |
10 | try { |
11 | connection = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "SA", ""); |
12 | } catch (Exception e) { |
13 | System.out.println("ERROR: failed to connect HSQLDB JDBC driver."); |
14 | e.printStackTrace(); |
15 | }
|
Vielleicht hilft's ja jemandem. Viele Grüße Sebi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.