# Fragen zu Datenbanksystemen



## Webmaster Pazi (5. Dez 2009)

Hallo User!

Ich sitze jetzt schon seit ca. 2 wochen an dem problem:

ich weiß leider nicht, wie man lokal sich in java mit einer Datenbank verbindet..

deshalb einige fragen:

1. Was und wozu braucht man JDBC?

2. Ist Hsqldb überhaupt notwendig für eine datenbankverbindung?

3. Wie sieht das jetzt mit den treibern aus? Muss ich die irgendwie in einen speziellem ordner hineingeben oder so?

3.1 Und wieso überhaupt als Treiberklasse org.hsqldb...?

Ich Arbeite mit Eclipse und habe schon versucht mich mit der MySQL datenbank zu verbinden. Leider treten da fehler auf mit den treibern, obwohl die Treiber und die versionen erscheinen, lässt Eclispe mich nicht mit der Datenbank verbinden.

So ich glaub das wars erstmal!

Hoffentlich könnt ihr mich einwenig darüber aufklären, denn ich blick da gerade null durch.

Danke!


----------



## MrWhite (5. Dez 2009)

Webmaster Pazi hat gesagt.:


> 1. Was und wozu braucht man JDBC?



JDBC steht für Java-Database-Connectivity und bietet eine einheitliche (Programmier-)Schnittstelle, über die man sich mit allen Datenbanken für die es einen JDBC-Treiber gibt verbinden kann. JDBC ermöglicht es eine Verbindung aufzubauen, Abfragen über diese zu senden und Ergebnisse zurückzubekommen.



> 2. Ist Hsqldb überhaupt notwendig für eine datenbankverbindung?


HSQLDB ist eine eigenständige Datenbank. Die brauchst du nur, wenn du sie nutzen willst. Wenn du mit MySQL arbeiten willst und absoluter Neuling bist, vergiss erstmal HSQLDB.



> 3. Wie sieht das jetzt mit den treibern aus? Muss ich die irgendwie in einen speziellem ordner hineingeben oder so?



Jein. Du musst die Treiber, die wahrscheinlich als .jar Datei vorliegen, im Classpath haben. Dies kannst du in Eclipse in den Projekteinstellungen tun. Dort gibst du einfach mal deinen Treiber als Abhängigkeit an.



> 3.1 Und wieso überhaupt als Treiberklasse org.hsqldb...?


Das sollte sich mittlerweile erübrigt habe.

Mach doch erstmal ein Tutorial:

Let me google that for you

MfG.
MrWhite


----------



## Webmaster Pazi (5. Dez 2009)

Danke!

Endlich blicke ich da mal etwas durch! 

Ich versuchs mal!

Edit:

Mein problem ist, dass ich nicht weiß wie das genau in eclispe funktioniert (das mit dem classenpfad)


----------



## MrWhite (5. Dez 2009)

Also, diesen Dialog müsstest du schon gesehen haben. Links in der Liste wählst du "Java Build Path" aus und wählst den Reiter "Libraries" an. Dort fügst du deine Bibliothek ein, dann sollte dein Programm den Treiber laden können.


----------



## Webmaster Pazi (5. Dez 2009)

Okay, dann war ich ja doch richtig 

Da kommt dann eine Liste mit allen treiber und dann klicke ich auf MySQL JDBC Driver dann steht oben im Fenster "Unable to locate JAR/zip in file system as specified by the driver definition: mysql-connector-java-5.1.0-bin.jar" da kann ich dann leider nicht ok anklicken.


----------



## MrWhite (6. Dez 2009)

Hmm, versuchst du da über irgendeinen DataSource-Explorer zuzugreifen oder so?

Geh doch einfach auf das Library-Tab, Füge deine mysql-jar über den "Add Jar" Button hinzu und dann poste bitte mal den Output von folgendem Code:


```
public static void main(String[] args)
{
	try
	{
		Class.forName("com.mysql.jdbc.driver").getInstance();
		System.out.println("Success");
		System.exit(0);
	}
	catch(Exception ex)
	{
		System.out.println("FAIL");
		ex.printStackTrace();
		System.exit(1);
	}
}
```


----------



## Webmaster Pazi (6. Dez 2009)

Hallo!

Also ich kann die mysql-jar nur per Add external Class Folder oder Add external jar file hinzufügen.

die ausgabe:

FAIL
java.lang.ClassNotFoundException: com.mysql.jdbc.driver
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:169)
	at test.main(test.java:6)


----------



## L-ectron-X (6. Dez 2009)

Offenbar ist der Treiber in Eclipse noch nicht bekannt.

Vogella hat das mal in einem Tutorial auf seiner Webseite beschrieben:
Eclipse Java IDE - Tutorial


----------



## Webmaster Pazi (6. Dez 2009)

Klappt leider auch nicht 

ich verstehe es einfach nicht wieso das so umständlich sein muss..., und dann klappts auch nicht mal!

Edit: ich habe ein bisschen herumgespielt und bei den daten der datenbankverbindung steht in eclispe folgendes:

Connection URL: jdbc:mysql://localhost:3306/database

könnte das sein, dass ich mysql installieren muss? wegen dem localhost..


----------



## L-ectron-X (6. Dez 2009)

Wenn du immer noch die gleiche Fehlermeldung hast, ist der Treiber immer noch nicht im Classpath.
Und natürlich muss auch eine Datenbank im Hintergrund laufen, aber das hat erst mal wie gesagt nichts mit der obigen Fehlermeldung zu tun.


----------



## Webmaster Pazi (6. Dez 2009)

Ja, also ich hab das alles schon versucht, ich weiß nicht weiter..

Kommt es darauf an ob es eine .jar, .java datei oder ein ordner sein muss?

Und wo sich die datei/der Ordner befinden muss?

Wenn ja, wo?

Es kann sein das ich da nämlich was falschgemacht habe..


----------

