Datenbanken in Java

Gast #1142420
Lesenswert?

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");
Gast #1142538
Lesenswert?

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?
Gast #1142545
Lesenswert?

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)
Gast #1142571
Lesenswert?

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?
Gast #1142598
Lesenswert?

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
}
Gast #1142610
Lesenswert?

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?
Gast #1142615
Lesenswert?

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.
Gast #1142622
Lesenswert?

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).
Gast #1142633
Lesenswert?

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?
Gast #1142642
Lesenswert?

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.
Gast #1142663
Lesenswert?

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?
Gast #1142675
Lesenswert?

> 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.
Gast #1142704
Lesenswert?

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...
Gast #1142753
Lesenswert?

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.
Gast #1142754
Lesenswert?

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)
Gast #1142757
Lesenswert?

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.
Gast #1142765
Lesenswert?

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?
Gast #1142774
Lesenswert?

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 ;)
Gast #1142781
Lesenswert?

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.
Gast #1142805
Lesenswert?

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...
Gast #1143172
Lesenswert?

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??!
Gast #2064169
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren