# Applet + MySQL



## DonJure (19. Jan 2005)

Den Treiber habe ich geschaft zum laden.
Leider habe ich immer noch einen Fehler.
Woran könnte es liegen?



```
void save(){
		 try {
	        Class.forName("com.mysql.jdbc.Driver");	        	      
	      }
	      catch (ClassNotFoundException sqle) {
	        JOptionPane.showMessageDialog(null, sqle.getMessage(),
	        		"Fehler1",JOptionPane.ERROR_MESSAGE);}
	      try{
	      	cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/" +sDB, sUser, sPass);
	      	st = cn.createStatement();  
	      }
	      catch(SQLException sqle){
	      	JOptionPane.showMessageDialog(null,  sqle.getMessage(),
	      			"Fehler2",                   
                    JOptionPane.ERROR_MESSAGE);
	      	}
	}
```

Fehler Hier


----------



## AlArenal (19. Jan 2005)

Applets laufen in einer sog. Sandbox, d.h. ohne zusätzlichen AUfwand dürfen sie nicht auf lokale Dateisysteme und das Netzwerk zugreifen. Du musst das Applet-JAR signieren.

http://java.sun.com/docs/books/tutorial/jar/sign/index.html

Dürftest aber auch hier im Forum reichlich finden. Einfach die Suchfunktion nutzen, dafür ist sie ja da.


----------



## bronks (19. Jan 2005)

Naja. Mit der Suchfunktion hab ich mehr Fragen als Antworten zu dem Thema Signierung gefunden, aber einiges ist schon dabei.   

@DonJure:
Nochetwas ist mir aufgefallen. Du wirst die Datenbank nicht mit 127.0.0.1:3306 erreichen, da das Applet auf einem entfernten Computer läuft und nicht auf dem Server.


----------



## DonJure (19. Jan 2005)

Hallo,

danke schon mal für die schnelle Hilfe.
Na klar habe ich die Suchfunktion benutzt nur wußte ich bis gerade nicht dass ich dass Applet signieren muss. Nun weiß ich es ja und habe direkt eine Frage. Also die Suchfunktion hat mir ein Programm gezeigt, welches ich schon seit längerem benutze. Nur ist mir dabei nicht aufgefallen,dass man damit signieren kann  (Jarkive)-  Jetzt habe ich das Problem dass ich das Passwort nicht kenne - in der Hilfe steht dass mann in der Dos-Konsole diesen Befehl eingeben soll "keytool -storepasswd" da zeigt er mir aber an dass er den Befehl nicht kennt. Hat jmd eine Idee???


----------



## foobar (20. Jan 2005)

Du hast Java/bin nicht in die PATH-Variable aufgenommen. Entweder du holst das nach oder verwendest den absoluten Pfad zu keytool ($JAVA_HOME/bin/keytool).


----------



## AlArenal (20. Jan 2005)

Muss auch nicht im Pfad stehen. Du kannst ins /bin-Verzeichnis  des JDK wechseln und dort den Key erstellen. Wie das geht steht hier:

http://www.olison.com/sites/signatur.php


----------



## KSG9|sebastian (20. Jan 2005)

> @DonJure:
> Nochetwas ist mir aufgefallen. Du wirst die Datenbank nicht mit 127.0.0.1:3306 erreichen, da das Applet auf einem entfernten Computer läuft und nicht auf dem Server.



noe:
Auf MySQL-Server kann man nur dann zugreifen, wenn das Programm/die Datenbankschnittstelle auf dem gleichen Server liegt wie die Datenbank, aus diesem Grund funktioniert der Zugriff mit 127.0.0.1 / localhost, denn das Program darf nirgends anders liegen.


----------



## DonJure (20. Jan 2005)

Hmm irgendwie ist dass alles komisch.
Habe nun mein applet signiert. Funzt natürlich nicht, da mein Browser diese Signierung nicht kennt.
Jetzt habe ich mal eine andere Frage. Gibt es eine andere möglichkeit um Daten zu speichern? Damit 
meine ich - dass nicht jeder user sich erst ein zertifikat herunterladen muss?


----------



## AlArenal (20. Jan 2005)

Muss er normalerweise nicht. Hat der Browser Standardeinstellungen, muss er lediglich einmal beim ersten "Kontakt" mit dem Zertifikat sein Okay geben. Ansonsten kann man für Hartnäckige noch nen Link die .crt-Datein angeben, so dass mit zwei Mausklicks das Zertifikat installiert werden kann.

Andere Möglichkeiten gibt es keine.


----------



## DonJure (28. Jan 2005)

Hallo,
leider habe ich nun immernoch dieses Problem.
Ich glaub die Syntax in dem Code stimmt nicht.
Den Link findet ihr hier zum Problem.


```
String url = "jdbc:mysql://localhost:3306/";
```


```
public void verbindung(){
		try {
	           Class.forName("com.mysql.jdbc.Driver");                   
	         }
	         catch (ClassNotFoundException sqle) {
	           JOptionPane.showMessageDialog(null, sqle.getMessage(),
	                 "Fehler1",JOptionPane.ERROR_MESSAGE);}
	         try{
	            conn = DriverManager.getConnection(url+sDB, sUser, sPass);
	            st = conn.createStatement();	            
	         }
	         catch(SQLException sqle){
	            JOptionPane.showMessageDialog(null,  sqle.getMessage(),
	                  "Fehler2", JOptionPane.ERROR_MESSAGE);	                    
	            } 
	}
```


----------

