Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

java+linux+mysql zugriff

Empfohlene Antworten

Veröffentlicht

Hoffe ihr könnt mir helfen....

Ich müßte ein java programm schreiben dass unter linux auf eine mysql datenbank zugreifen.....

soviel ich weiß muß dass ohne odbc auch gehen (wenn es odbc in linux überhaupt giebt?! )

Kann mir jemand helfen??

Wäre echt super!

Danke SwordMaster

Also als erstes brauchst du eine funktionierende MySQL-Datenbank!;)

Dann brauchst du den Treiber den du hier findest. Und dann musst du nur noch das ganze in dein Java-Programm einbinden.

Treiber laden:

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection aufbauen:
	connection_MySQL = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/Datenbank?user=username&password=Password");

Dannnur noch deine Statements und fertig ist der Zugriff auf die MySQL!!

  • Autor

Hab mir jetzt

mysql-connector-java-3.0.8-sable.zip runtergeladen (hoff dass ist das richtige....)

nur in der zip datei sind sehr sehr sehr viele java und class dateien....

was mußt ich mit denen machen?!?!?

muß ich die auch in mein programm einbinden?!?!

wenn ja wie?!

sorry java ist nicht so meine stärke *G* udn linux schon gar nicht :(

Danke für eure hilfe!

SwordMaster

Original geschrieben von SwordMaster

mysql-connector-java-3.0.8-sable.zip

Auszug aus README Datei eben dieser oben genannten Zip Datei.

Put mysql-connector-java-3.0.7-stable-bin.jar in your classpath, either by adding the

FULL path to it to your CLASSPATH enviornment variable, or putting it

in $JAVA_HOME/jre/lib/ext.

Das weitere Vorgehen steht ebenfalls in der README

Gruß Jaraz

Folgendermaßen.

In dieser Zip ist eine Datei namens: "mysql-connector-java-3.0.8-stable-bin.jar". Erst mal entpacken. Diese benennst du am besten gleich mal in was kürzeres um (z.B. "mysql-driver.jar").

Dann brauchst du nur noch das Programm mit dem Parameter -classpath zu übersetzen: "javac -classpath .;laufwerk:\PfadZurJar\mysql-driver.jar Programm.java"

Und genauso führst du dein Programm auch aus: "java -classpath .;laufwerk:\PfadZurJar\mysql-driver.jar Programm"

Peet

Oder so wie es Jaraz macht!:rolleyes:

Verdammt, wieder zu langsam.;)

  • Autor

Hallo leute

bei windows hab ich die sache jetzt geschafft hab die *.zip datei entpackt....

dann die jar datei in den "ext"-Ordner von java kopiert (hab ich i nder Readme gelesen) und dann das programm ganz normal gestartet => hat funktioniert....

dann hab ich mir "mysql-connector-java-3.0.8-stable.tar.tar" datei runtergeladen (geh davon aus dass die für linux ist.... *.zip giebts ja in linux nicht oder?!? )

hab die dortenhaltene *.jar datei in den "ext" ordner auf der Linuxmaschine kopiert

und wollte das programm dann starten....

Kompilieren kann ich es ohne probleme...

aber

ich bekomme folgende fehlermeldung

java.lang.NullPointerException:

at SwordsMySQLClass.doMyQuerys(OnlyMy

at OnlyMySql.main(OnlyMySql.java:13)

das komische ist dass ich die zeilen

Class.forName("com.mysql.jdbc.Driver").newInstance();

con = DriverManager.getConnection("jdbc:mysql://192.168.40.173:3306/test");

schon im konstrukter der Datenbankklasse stehen habe....

also findet er den treiber dcoh oder?!??!

sonst würde er die Exception schon im Konstruktor werfen...

die doMyQuery führt nur eine selct anweisung aus:(((

könnt ihr mir helfen??!?!?!?

danke swordmaster

Was machst du denn in dieser Methode genau? Also am besten den Quellcode der Zeile in der der Fehler auftritt.

Peet

  • Autor

komisch Ich verstehs nicht *GGG*

jetzt wollte ich die funktion kürzen weil sie sowieso zu lang für ein Testprogramm ist....

Jetzt habe ich nur

Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection con = null;

con = DriverManager.getConnection("jdbc:mysql://192.168.40.173:3306/test");

Statement stat = con.createStatement();

stat.execute("insert into test VALUES (9);");

und krieg jetzt eine ClassNotFoundException

aber im windows hab ich doch auch nichts anderes gemacht als die *.jar datei in den Ext... ordner zu kopieren... und dann hats funktioniert....

order braucht die *.jar datei die anderen dateien die im zip archiv (das ich runtergeladen hab) sind auch noch?!

sorry hoff ich stell mich nicht zu doof!

Thx SwordMaster

Eigentlich müsstest du die .jar Datei in deinen Classpath aufnehmen. Es reicht nicht, wenn du sie nur in diesen Ordner kopierst!! Das weißt du aber wie das geht?!

Peet

Da ich nicht weiß wie man unter Linux den System-Classpath setzt muß ich dir anders helfen.

Also du startest doch deine Klasse mit dem Aufruf von "java Klassenname"?!

So, und jetzt setzt du einfach nur noch einen Parameter davor. "java -classpath /home/irgendwas/Pfad/mysql-driver.jar;. Klassenname"

Achtung, vergess nicht den "." im Classpath da dieser auf das aktuelle Verzeichnis zeigt.

  • Autor

Ich werf diese linux kiste gleich so weit... dass ich sie gar nicht mehr seh....

*verzweifel*

hab jetzt folgendes probiert(er soll ja nur Sql.java Starten)

java -classpath \home\volkstef\java\SqlDriver.jar;. Sql

==>Als ergebniss bekam ich: "bash: Sql: No such file or directory"

dann hab ich probiert(hab gedacht geb ich mal den ganzen pfad der Sql.java an):

java -classpath \home\volkstef\java\SqlDriver.jar;. \home\volkstef\java\Sql

==>Als ergebniss bekam ich: bash: homevolkstefjavaSql: No such file or directory

fragt mich nicht wieso der den "\" nicht versteht....

aus lauter verzweiflung hab ich probiert das ".java" beim java befehl mit anzugeben => funktioniert natürlich auch nicht wiel man das ja normal auch nicht macht.....

Da solls doch leute geben die meinen Linux sei das bessere system.....:( :( :( :(

Vielleicht hast ja noch nen geistesblitz?!

ÄHM!! "/" != "\"

Nimm anstatt "\" mal den "/"!!:D

Linux nimmt den "\" nicht gern für Pfade! :mod:

  • Autor

tja...

jetzt hab ichs so versucht (statt "/" ein "\")

java -classpath /home/volkstef/java/SqlDriver.jar;. /home/volkstef/java/Sql

=> Ergebnis: bash: /home/volkstef/java/Sql: No such file or directory

ist MIR schon klar dass es nur eine "Sql.java" giebt und keine "Sql"aber wieso ist das dem linux nicht klar.....

:confused: :confused: :( :( :confused: :confused:

P.S.

java -classpath /home/volkstef/java/SqlDriver.jar;. Sql

funktioniert natürlicha auch nicht

Also folgendermaßen.

Du wechselst in das Verzeichnis in dem die Sql.java liegt (und natürlich die Sql.class falls du keine Packages verwendet hast).

"cd /home/volkstef/java"

Und dann gibst du den Befehl ein: "java -classpath /home/volkstef/java/SqlDriver.jar;. Sql"

Wobei ich mir mit dem "." nicht ganz sicher bin (ich kenn das von Windows her)

Aber die Fehlermeldung kommt ja nur beim letzten Teil deines Aufrufs.

Peet

  • Autor

das ist ja das komische!

ICH WAR JA IMMER in dem verzeichniss wo die Sql.java udn Sql.class liegt!!

bei:

java -classpath /home/volkstef/java/SqlDriver.jar Sql

=> Ergeniss: "Unable to initialize threads: cannot find class java/lang/Thread"

bei

java -classpath /home/volkstef/java/SqlDriver.jar;. Sql

=> Ergebniss: bash: Sql: No such file or directory

obwohl ich im Verzeichniss bin!!

Übrigens habe ich vorhin im internet gelesen dass Linux die einzelnen pfade mit ":" und nicht mit ";" trennt also hab ichs mal so probiert

java -classpath /home/volkstef/java/SqlDriver.jar:. Sql

=> Ergebniss: "Unable to initialize threads: cannot find class java/lang/Thread"

kann es sein dass wenn ich mit parameter classpath arbeite die restlichen standartpfade die in classpath stehen für diesen aufruf nicht gelten und deshalb der fehler kommt?!

java -classpath /home/volkstef/java/SqlDriver.jar:. Sql

=> Ergebniss: "Unable to initialize threads: cannot find class java/lang/Thread"

kann es sein dass wenn ich mit parameter classpath arbeite die restlichen standartpfade die in classpath stehen für diesen aufruf nicht gelten und deshalb der fehler kommt?!

Also das wäre eigentlich der richtige Aufruf. Die anderen Pfade die im System-Classpath stehen gelten deswegen noch weiterhin. Ich glaub da ist was bei der installation schief gelaufen. Findest du irgendwo auf deinem System die "rt.jar" (so um die 25MB groß)?? Müsste eigentlich irgendwo in dem Verzeichnis liegen in dem du dein Java SDK installiert hast. Die nimmst du noch in den Classpath auf.

Dann weiß ich auch nicht weiter.:confused:

  • Autor

Nach langem suchen und stöbern hab ichs durch zufall gemerkt....

Es war ein alter java compiler (JDK 1.18) installiert....

der neue war zwar auf der platte... aber der alte wurde benutzt....

is echt doof gelaufen, da es nicht mein server war, und die neue java installation hab ich damals auch nicht gemacht....

Jetzt läuft der neue compiler

und die Datenbank verbindung war auch nicht mehr schwer....

Danke für deine geduld!

Ciao SwordMaster

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.