![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 07.10.2005
Beiträge: 23
|
hallo zusammen
...ich versuche gerade verzweifelt auf meine MySQL-Datenbank zu zugreifen. Das frustrierende daran ist, das der selbe Code in einem Servlet wunderbar funktioniert! Es handelt sich dabei um folgende Zeile: Code:
con = DriverManager.getConnection("jdbc:mysql://localhost/spiele?user=root&password=");
Ich sitz den ganzen Tag schon vor dieser Zeile und hoffe es kann mir jemand einen Hinweis geben, bevor ich noch überschnappe... Danke ...der Code PHP-Code:
|
|
|
|
|
|
Nach oben #2 |
|
Sesselkleber
Registriert seit: 17.01.2005
Beiträge: 567
|
Heeey *streichel*, sowas ist doch kein Problem.
Nicht die Flinte ins Korn werfen. Scheint ein wenig anders zu sein als bei JSPs. Das Problem scheint zu sein, dass du mit einem Programm auf den Port der Datenbank zugreifen musst. Die Datenbank muss also auf jeden Fall extern erreichbar und auf einem Port geöffnet sein! Das ganze sollte dann so aussehen (mySQL-Standart-Port PHP-Code:
spiele = deine Datenbank root = dein Benutzer "" = das Passwort für den Benutzer (in deinem Fall ja leer) Aber vorsicht! Es ist nicht gerade sinnvoll bei einer Datenbank die auf einem Port geöffnet ist einen root.-user ohne Passwort einzurichten! |
|
|
|
|
|
Nach oben #3 |
|
Neuer Benutzer
Registriert seit: 07.10.2005
Beiträge: 23
|
Hey danke für die schnelle Antwort..
..leider hab ich das so schon erfolgslos versucht. ich habe sogar mit netstat überprüft ob der service auch auf port 3306 läuft ...was er ja auch tut ..und übers servletmit und ohne portangabe super klappt. ..leider klappt es mit servlet-aufrufen aus applets nicht so ganz. darum soll meine serverapplikation die Datenbankabfrage übernehmen. |
|
|
|
|
|
Nach oben #4 |
|
Sesselkleber
Registriert seit: 17.01.2005
Beiträge: 567
|
Dann gib mir mal bitte ein bisschen mehr infos.
1. Was genau ist es für ein Programm? (Applet / Applikatio) 2. Liegt die Datenbank auf dem selben Rechner? Wie genau sieht dein Code jetzt aus mit der Änderung wie ich sie gesagt habe? Was genau ist die Fehlermeldung? (Bitte in den catch-Block ein e.printStackTrace() einbauen und die Fehlermeldung hier posten. Oh, und nimm mal bitte das .newInstance() hinter dem Class.forName heraus bitte. Da gabs bei mir auch mal Probleme mit. Sollte auch ohne problemlos funktionieren. Danke Sparrow |
|
|
|
|
|
Nach oben #5 |
|
Neuer Benutzer
Registriert seit: 07.10.2005
Beiträge: 23
|
1.
hmm also mal ganz abgesehen davon ...das ganze ist eine Art Spielserver bzw. ein Chat-Server, der auch das koordinierte ausstauschen von Steuerbefehlen für ein beliebiges Multiplayer Spiel übernimmt. Das ganze ist im Entwicklungsstadium lauft alles lokal auf meinem Rechner. Auf dem Server: -von mir programmierte Java Server Application -Tomcat -MySQL-Server Client: -Applet -HTML-Output Das ganze soll ein abgeschlossenes Modul geben, so dass man ohne grossen Aufwand ein neues Spiel dazuprogrammieren kann. Im Hauptchat/Treffpunkt-Applet sollte nun eine Spielauswahl rein, die ist in der Datenbank gespeichert. Möglichkeiten: 1. Parameterübergabe an Applets --> Problem viele Daten, keine Möglichkeit Arrays zu übergeben!? 2. Spiele über URL-Aufruf über ein Servlet laden --> klappt aber hohe Fehlerrate 3. SQL-Abfrage über Applet --> scheint mir zu problematisch Darum bin ich auf die 4.Lösung gekommen das ganze von der Serverapplication übernehmen zu lassen. ja also das ganze ist in jedem fall im Moment auf das unten aufgeführte Listing reduziert. Ausser du hättest grade noch eine 5.Lösung parat. Würde mich aber trotzdem interessieren wie man so ne SQL-Connection über "Java ohne ServerPages" macht. 2. Ja der SQL-Server läuft auf der gleichen Maschine wie alles andere Fehlermeldung: java.sql.SQLException: Error during query: Unexpected Exception: java.lang.Array IndexOutOfBoundsException message given: null at com.mysql.jdbc.Connection.execSQL(Connection.java: 1913) at com.mysql.jdbc.Connection.execSQL(Connection.java: 1842) at com.mysql.jdbc.Statement.executeQuery(Statement.ja va:1064) at com.mysql.jdbc.Connection.initializePropsFromServe r(Connection.java:979) at com.mysql.jdbc.Connection.connectionInit(Connectio n.java:905) at com.mysql.jdbc.Driver.connect(Driver.java:311) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at sqltest.main(sqltest.java:13) Source: PHP-Code:
|
|
|
|
|
|
Nach oben #6 |
|
Sesselkleber
Registriert seit: 17.01.2005
Beiträge: 567
|
Also deine Lösung scheint schin in Ordnung.
Das Applet solle eigentlich die Applikation auf dem Server konnektieren können, solange das Applet vom selben Server geladen auf der auch die Applikation läuft. Außerdem ist so der Sicherheitsaspekt gegeben. Du kannst Abfragen vom Applet zur Applikation schicken, die Applikation führt dann die Abfrage der Datenbank durch und schickt das Ergebnis zurück. Das hat den Vorteil, dass du der Firewall auf dem Rechner sagen kannst, dass der Port der Datenbank nur über den selben Rechner (also von deiner Applikation) erreichbar ist. Das ist auf jeden Fall die sicherste Lösung. Die Datenbank direkt aus einem Applet anzusprechen halte ich eher für seeeeehr gefährlich. ich habe bisher immer den selben Weg genommen wie du. Irgendwo hier gibts auch einen Thread zu mir zu dem Thema Java->Datenbank->Sicherheit. So, jetzt zu deinem aktuellen Problem. Es scheint so als wäre nicht die Zeile mit der Connection das Problem, sondern irgendwo scheint es eine Abfrage zu geben. Die Fehlermeldung sagt ja deutlich "Exception during query" -> "Fehler während einer Abfrage" Hier mal ein Beispielcode von mir wie eine Datenbank verbunden wird und eine Tabelle angelegt wird. Ich hoffe der funktioniert bei dir. Ich nehme hierfür einfach mal die Datenbank "test", die legt mySQL ja normalerweise direkt an. Wenn nicht ändere die Datenbank im Code oder leg eine entsprechende an. Hier also der Code: PHP-Code:
Wenn der Code bei dir geht, dann funktioniert deine SQL-Anbindung auch. Vielleicht kommen wir so ja auf die Spur des Fehlers. |
|
|
|
|
|
Nach oben #7 |
|
Neuer Benutzer
Registriert seit: 07.10.2005
Beiträge: 23
|
Hey Sparrow
..ich hab mich am Samstag entschlossen meinen Rechner mal kurz neu aufzusetzen ..ich meld mich dann ..wenn ich wieder soweit bin. Mal kurz zum "Exception during query" ..ich dachte zuerst auch das hätte was mit der SQL-Abfrage zu tun ....bis ich dann Zeile für Zeile auskommentiert habe bis nur noch das unten aufgeführte sqltest.java übrigblieb. Treiber laden geht übrigens ...wenn der nicht vorhanden ist meldet er: "no suitable driver" deinen code werde ich in ungefähr einer stunde testen ..wenn bei mir alles wieder installiert ist Danke und Gruss |
|
|
|
|
|
Nach oben #8 |
|
Neuer Benutzer
Registriert seit: 07.10.2005
Beiträge: 23
|
*schäm* ..es funktioniert alles!!
auch die Fehlermeldungen sind nun gleich viel aussagender: SQLException: Unknown database 'spiele' ...leider hab ich bei der Neuinstallation meine Datenbank gekippt!! jedenfalls ...ich glaub jetzt funktioniert alles ..das ganze lag wahrscheinlich an der CLASSPATH-Variable des System. Mein Tomcat hat wahrscheinlich auf ein anderes Klassenverzeichnis zugegriffen als das mit "java file" aufgerufene Programme. Naja zumindest läuft jetzt nach der Neuinstallation meine Sound-Karte und mein DVD brenner wieder Ist mir mir echt peinlich deine und meine Zeit für so Schnickschnack geopfert zu haben :rolleyes: ..tschuldigung So aber mein Projekt neigt nun aber doch hoffentlich langsam dem Ende zu ..und mein Ausflug ins JavaLand somit vorerst auch ..zeit mich richtiger Arbeit zu widmen..ich such mir mal n'Job aber ... :cool: ich komme wieder evt. ...hab da an 3D-Zeugs gedacht ...OpenGL, DirectX oder so ...weist du vieleicht gerade wie's da mit der Performance aussieht ..in einem Applet ..oder denkst du es wäre besser auf eine Client-Applikation ..oder gar auf C++ oder sowas zurück zu greifen? ja also danke jedenfalls nochmal Gruss |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Developers-guide.net Projekt sucht willige Java Programmierer | beny_mcde | Projekte unserer Mitglieder | 11 | 10.08.2006 13:03 |
| Oracle-DB-Zugriff via JSP macht Probleme | bene23 | Enterprise Java | 4 | 08.11.2005 14:37 |
| [BUCH] Java ist auch eine Insel | kampet | Literatur | 5 | 22.02.2005 14:40 |
| Zwist um Java als Open Source | kampet | Nachrichten | 0 | 05.07.2004 03:37 |