Java Auf MySQL Datenbank zugreifen

Andreasb.

Lt. Junior Grade
Registriert
Jan. 2011
Beiträge
271
Hi,
ich habe vor eine MySQL Datenbank in Java zu nutzten.

Bisher habe ich folgenden Code geschrieben um es zu testen:
Code:
import java.sql.*;
import java.io.*;

public class Datenbank {
	public static void main(String[] args) {
	
		String URL 			="";
		String benutzername ="";
		String passwort		="";
		

							


		// Treiber laden
		try {
			Class.forName("com.mysql.jdbc.Driver");
			}
			catch (Exception e) {
				System.err.println(" MYSQL-Treiber konnte nicht geladen werden.");
				return;
				}
				
				//Verbindung zu Datenbank aufbauen
				Statement befehl		= null;
				Connection verbindung	= null;
				
				try {
					verbindung = DriverManager.getConnection (
												URL,
												benutzername,
												passwort);
						befehl = verbindung.createStatement();
					}
					catch (Exception e) {
						System.err.println(" Verbindung zu " + URL +" konnte nicht hergestellt werden");
						return;
						}
						
						// Daten auslesen
						try {
						ResultSet datenmenge;
						datenmenge = befehl.executeQuery(
									"SELECT * FROM test ORDER BY id;");
									
									//Überschruift ausgeben
									
									Console cons = System.console();
									cons.printf("\n");
									cons.printf("Name");
									cons.printf("\n");
									
									//Einzelne Datensätze ausgeben
									int id;
									String name;
									String info;
									
									while(datenmenge.next()) {
									name = datenmenge.getString("name");
									id = datenmenge.getInt("id");
									info = datenmenge.getString("info");
									cons.printf(" %s \t\t \n", id, name, info);
									}
									verbindung.close();
									}
									catch (Exception e) {
										e.printStackTrace();
									
									}
						}
				
				
				}


Dieser Code stammt aus einem Lehrbuch.
Wenn ich das Programm nun starten möchte kommt die "Meldung MYSQL-Treiber konnte nicht geladen werden."
Wie kann ich die MySQL Treiber auf meinem Computer installieren und sie in das Programm importieren?
Mein Betriebsystem int Windows 7.
 
ich schätze mal es muss ein MySQL Treiber/Connector unter Systemsteuerung\Verwaltung\Datenquellen (ODBC) vorhanden sein.

Evtl hilft es wenn Du den hier mal installierst: http://dev.mysql.com/downloads/connector/odbc/

Für URL, Username und Password hast Du was definiert?
 
Zuletzt bearbeitet:
Falls du Eclipse verwendest (Andere IDEs kenne ich nicht und Netbeans nur ein wenig):

Kannst du mal versuchen, den Treiber lokal in das "Projekt" zu importieren und "lokal" zu verwenden? Damit kannst du ausschliessen, dass es ein Sicherheitsproblem ist, weil lokal müsste der SQL-Treiber ausführbar sein.

Evtl. hilft auch diese Seite noch weiter:
http://openbook.galileocomputing.de...tml#dodtpfd7c76cc-c682-4544-99ee-43299a6d0bb2

http://it-republik.de/jaxenter/artikel/MySQL-und-Java-JDBC-einrichten-3219.html

und hier sogar ein Video:
http://www.youtube.com/watch?v=9_bV3I5pUOs
 
Unter Systemsteuerung\Verwaltung\Datenquellen (ODBC) habe ich einen MYSQL ODBC 5.1 Driver installiert, ist das der richtige?

URL, Username, passwort habe ich definiert.
Eclipse benutzte ich nicht sondern java editor
 
Hi,

du benutzt den jdbc-Treiber, dann sollte der auch installiert sein. Ich habe oben doch eine Quelle gepostet. Hast du die schon runtergeladen und installiert?

VG,
Mad
 
Die Erklärung der Readme Datei bringt mich grad nicht weiter.
Muss ich den an einen bestimmten Ort installieren?
 
Zuletzt bearbeitet:
Hi,

und? Damit geht es auch nicht? Oder doch? Immer noch die gleiche Meldung?

Mach doch bitte mal bei

Code:
catch (Exception e) {
System.err.println(" MYSQL-Treiber konnte nicht geladen werden.");
return;
}

der Stelle eine Ausgabe der Exception-Message und nicht "MYSQL Treiber konnte nicht geladen werden".

VG,
Mad
 
Folgende Meldung:

com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
 
hinter Class.forname() muss noh ein newInstance.
edit: für eine genauere fehlermeldung würde ich dir die ausgabe über den Exception handler empfehlen
den treiber kannst du bei ecclipse über den source build path einbinden
 
Zuletzt bearbeitet:
du meinst "mysql-connector-java-5.0.8-bin.jar" oder?
Die ist im Classpath drin
 
Zuletzt bearbeitet:
Ja. Da die Klasse nicht gefunden werden kann, sollte es ein Problem mit dem Klassenpfad sein.

Nur zur Sicherheit: Gib den Klassenpfad mal aus:
Code:
System.out.println(System.getProperty("java.class.path"))

Wie sieht denn der komplette Stacktrace aus?
 
.;C.\Program Files\...\jre6\lib\ext\QTJava.zip;C:\Java\mysql-connector-java-5.0.8
Ergänzung ()

.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;C:\Java\mysql-connector-java-5.0
.8
com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Datenbank.main(Datenbank.java:18)
 
Zuletzt bearbeitet:
Ist das der komplette Pfad: "C:\Java\mysql-connector-java-5.0.8"? Es fehlt die Dateiendung! Bzw. der Dateiname!
 
Ich habe den Dateinamen mit angegeben aber der wird nicht ausgegeben.
 
Wenn er nicht ausgegeben wird, stimmt etwas mit der Definition nicht. Poste mal einen Screenshot vom Einstellungsdialog.
 
Kann man da was erkennen?
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    80,6 KB · Aufrufe: 404
Man erkennt, dass Du Änderungen am globalen Klassenpfad durchgeführt hast. Zum einen keine gute Idee, zum anderen muss das keine Auswirkungen auf den Java Editor haben.

Ich bin bisher davon ausgegangen, dass die Klasse direkt aus dem Java Editor gestartet wird? Ist das der Fall? Oder rufst Du die Klasse vom Prompt oder auf eine andere Weise auf?
 
Ich habe sie über promt aufgerufen aber ich habe es auch mit dem java editor probiert, da passiert aber das selbe.
 
Zurück
Oben