MySQL Zugriffe (es geht, aber warum?)

Status
Nicht offen für weitere Antworten.

Halunken-Joe

Aktives Mitglied
Hallo alle zusammen,

Ich bin noch nicht so fit in Java und habe gerade zum ersten Mal erfolgreich auf eine MySQL Datenbank zugegriffen und habe noch (weiter unten) ein paar Fragen dazu:

Ich entwickle unter Windows 2000 mit Eclipse 3.2.1
Das JRE jre1.5.0_06 ist unter C:\Programme\Java\jre1.5.0_06 installiert
Zum testen benütze ich mein internes Netz: 192.168.100.x
Das MySQL 5.0_22 (Debian) läuft unter Linux
Das von mir geschriebene Programm wird aus Eclipse heraus gestartet

Zuerst dachte ich, das ich den Datenbanktreiber unter ->Start->Einstellungen->Systemsteuerung->Verwaltung->Datenquellen etwas einrichten müßte. Früher (mit Access) war das so, aber dort war nichts zu holen.

Nach dem lesen der FAQ hier im Forum habe ich mir von http://dev.mysql.com/downloads/connector/ den Connector/J 5.0 heruntergeladen: mysql-connector-java-5.0.4-bin.jar Die 5er-Versionen sollen zwar hin- und wieder Probleme bereiten aber eine 3er-Version wollte ich irgendwie nicht.

Mir war zuerst nicht ganz klar wohin er installiert werden sollte: Auf die Maschine mit dem Eclipse oder auf die Maschine mit dem MySQL Server? Irgendwann war den klar das der J/Connector auf der Maschine, auf der ich mit Eclpse entwickle, installiert werden muß.

Als ich über ->Arbeitsplatz->Eigenschaften->Erweitert->Umgebungsvariablen versucht habe den Pfad (unter dem ich den J/Connector mysql-connector-java-5.0.4-bin.jar abgelegt hatte) zur 'PATH' Variable hinzuzufügen bin ich gescheitert. Der neue Pfad steht zwar drin, zeigt aber keine Wirkung. Ehrlicherweise muß ich sagen das ich Windows auch nicht neu gestartet hatte. Die Fehlermeldungen lauteten folgendermassen:

Code:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
	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.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at SQL_Test.main(SQL_Test.java:25)
Treiber kann nicht geladen werden: org.gjt.mm.mysql.Driver

Letzt endlich habe ich den J/Connector mysql-connector-java-5.0.4-bin.jar im Ordner meiner JRE Installation abgelegt und zwar unter C:\Programme\Java\jre1.5.0_06\lib\ext\mysql-connector-java-5.0.4-bin.jar Das führte zum Erfolg. Unter Linux soll das mit dem \lib\ext\ Verzeichnis ebenfalls funktionieren).

Mein Code sieht dann folgermassen aus:

Code:
              try{
			//Class.forName("com.mysql.jdbc.Driver");
			Class.forName("org.gjt.mm.mysql.Driver");
			//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			//Class.forName("mysql-connector-java-5.0.4-bin.jar");
			}
		catch(ClassNotFoundException cnfe){
			    cnfe.printStackTrace();
			    System.out.println("Treiber kann nicht geladen werden: "+cnfe.getMessage());
			}

und ...

Code:
                Connection conn;
                conn = DriverManager.getConnection("jdbc:mysql://192.168.100.3/test_db?user=derpapast&password=geheim");


Jetzt meine Fragen:

1) In den meisten Beispielen steht, das man import java.sql.* und import java.net.* benützen soll. Auf import java.net.* kann man aber anscheinend komplett verzichten. Warum eigentlich? Es handelt sich doch um eine Netzwerkverbindung.

2) Warum funktioniert ausgerechnet "Class.forName("org.gjt.mm.mysql.Driver");"? Die anderen Aufrufe habe ich in verschiedensten Beispielen gefunden,aber sie funktionieren nicht.

3) Ich habe es noch nie gemacht, aber wenn ich ein *.jar File mit meinem Code erzeuge und es einem Bekannten in die Hand drücke (und vorher das 192.168.100.3 in www.meinrechner.de ändere und den port 3306 freigegebe) : Muß der auch den J/Connector bei sich installieren? Oder schubbert das Eclipse den ganzen wichtigen JDBC Kram mit in das *.jar? Wird das *.jar dann nicht wahnwitzig groß?


Um zum Schluß: Vielen Dank an alle, die Beiträge hier im Forum oder anderswo schreiben: Ohne dieses Forum und ohne Google könnte ich immer noch nicht auf die Datenbank per Java zugreifen!
 

Caffè Latte

Bekanntes Mitglied
Hi,

zu 1: fast alles, was du für eine DB-Anbindung brauchst, ist im Package java.sql. java.net braucht man, wenn ich mich nicht täusche, wenn man lokal über den Socket auf das MySQL-System zugreifen will. Allerdings ist meine IDE immer so freundlich mir zu sagen, was ich brauche. ;)

zu 2: ist das nicht ein alter Treiber? Bei mir heißt der jedenfalls "com.mysql.jdbc.Driver". Genaueres steht im README des Connectors. Wenn das nicht so klappt wie beschrieben dann wird der Treiber nicht gefunden.

zu 3: ob deine DB von außen erreichbar ist, ist eine andere Frage. Auf jeden Fall braucht jeder, der über Java darauf zugreifen will, den JConnector. Deshalb wäre es sinnvoll, dass du den in deine "Projekt" verpackst und gleich mit weiter gibst.

Hoffe es hilft ...
 

Halunken-Joe

Aktives Mitglied
Caffè Latte hat gesagt.:
zu 2: ist das nicht ein alter Treiber? Bei mir heißt der jedenfalls "com.mysql.jdbc.Driver". Genaueres steht im README des Connectors.
In http://dev.mysql.com/doc/refman/5.1/de/connector-j-reference-configuration-properties.html habe ich folgendes gefunden: "... Die Klasse, die java.sql.Driver in MySQL Connector/J implementiert, heißt com.mysql.jdbc.Driver. Der Klassenname org.gjt.mm.mysql.Driver eignet sich auch, um die Abwärtskompatibilität mit MM.MySQL zu bewahren. ..."

Mit anderen Worten: Es gehen beide (ich habe es auch gerade ausprobiert) Treiber, wobei "com.mysql.jdbc.Driver" der neuere Treiber ist.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben