# wohin mit dem treiber ? mysql-connector-java-5.0.5-bin.jar



## Guest (17. Apr 2007)

hallo,

bin dabei java mit einer mysql DB zu verbinden.
den JDBC Treiber habe ich hier runtergeladen:
http://dev.mysql.com/downloads/connector/j/5.0.html

wohin muß ich den treiber kopieren?
ich habe in momentan im gleichen verzeichniss wo mein java programm liegt.
ich packe alles in ein jar file, aber nachdem ich das programm ausführen will, wird der treiber nicht geladen.

wird der nicht gefunden ?


```
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();	
}
catch(Exception e){
System.err.println("kann treiber nicht laden"+e);	
}
```


----------



## Guest (17. Apr 2007)

ich will das in einem Applet benutzten und weiß nicht wohin mit dem treiber ?


----------



## KSG9|sebastian (17. Apr 2007)

In der FAQ gibt's nen Artikel darüber wie man Jar's verpackt.


----------



## Guest (17. Apr 2007)

ok,

das klappt jetz.


```
//JDBC TREIBER "mysql-connector-java-5.0.5-bin.jar" INITIALISIEREN
	try{
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		System.out.println("treiber geladen==OK");	
	}
	catch(Exception e){
		System.err.println("kann treiber nicht laden"+e);	
}
```


```
//DB CONNECT
	try{
	verbindung=DriverManager.getConnection(jdbc:mysql://localhost/meinedb,user,pw);
	System.out.println("MySQL verbindung==O	K");
	}
	catch(Exception e){
	System.err.println("MySQL verbindung fehlgeschlagen "+e);
	}
```

Aber, wenn ich das signierte Applet jetzt online abrufe bekomme ich eine Exception:

muß ich den port bei localhost mit angeben ?

=========================================================================

MySQL verbindung fehlgeschlagen com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.ConnectException
MESSAGE: Connection refused

STACKTRACE:

java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:430)
	at java.net.Socket.connect(Socket.java:516)
	at java.net.Socket.connect(Socket.java:466)
	at java.net.Socket.<init>(Socket.java:366)
	at java.net.Socket.<init>(Socket.java:208)
	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:173)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:267)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:2739)
	at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
	at java.sql.DriverManager.getConnection(DriverManager.java:525)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at FChooserButton.actionPerformed(FChooserButton.java:102)
	at java.awt.Button.processActionEvent(Button.java:388)
	at java.awt.Button.processEvent(Button.java:356)
	at java.awt.Component.dispatchEventImpl(Component.java:4021)
	at java.awt.Component.dispatchEvent(Component.java:3869)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


** END NESTED EXCEPTION **

Last packet sent to the server was 24 ms ago.

=========================================================================


----------



## Guest (17. Apr 2007)

1-kompilieren
javac FChooserButton.java

2-archiv erstellen
jar cvf FChooserButton.jar FChooserButton.class mysql-connector-java-5.0.5-bin.jar

3-applet signieren
jarsigner -signedjar SFChooserButton.jar FChooserButton.jar  fchooserbuttonkey


----------



## L-ectron-X (17. Apr 2007)

Eigentlich brauchst du gar nichts weiter machen. Du packst dein fertig kompiliertes Applet in ein Jar-Archiv. Das kannst du mit jedem Packprogramm machen. Erzeuge einfach eine Zip-Datei und benenne diese in .jar um.
Diese Jar-Datei signierst du mit dem Tool aus der FAQ, sicherheitshalber auch die MySQL-Treiberdatei.
Und dann notierst du die passenden HTML-Tags.

```
<applet code="MeinApplet.class" archive="MeinJar.jar, mysql-connector-java-5.0.5-bin.jar" width="600" height="400">
</applet>
```
Den MySQL-Treiber legst du ins gleiche Verzeichnis, in dem auch dein signiertes Applet liegt.
Und nicht vergessen, den Port für MySQL zu öffnen.


----------



## Guest (17. Apr 2007)

hallo,

ich sag nochmal wie ich es jetzt gemacht habe:

1 kompilieren
javac FChooserButton.java

2 archiv
jar cvf FChooserButton.jar FChooserButton.class

3 signieren1
jarsigner -signedjar SFChooserButton.jar FChooserButton.jar  fchooserbuttonkey

4 signieren2
jarsigner -signedjar smysql-connector-java-5.0.5-bin.jar mysql-connector-java-5.0.5-bin.jar  fchooserbuttonkey


```
<applet archive="SFChooserButton.jar, smysql-connector-java-5.0.5-bin.jar" code="FChooserButton" width="600" height="500"></applet>
```

der treiber wurde richtig geladen

trotzdem bekomme ich eine Exception:
MySQL verbindung fehlgeschlagen java.sql.SQLException: No suitable driver


----------



## Guest (17. Apr 2007)

alle dateien befinden sich in einem ordner


----------



## KSG9|sebastian (17. Apr 2007)

Von wo testest du? Kann es sein das der mysql-User nur von localhost zugreifen darf?

select * from mysql.users

Da muss bei Hostname ein % bzw. die IP des Clients eingetragen sein.


----------



## Guest (17. Apr 2007)

also testen tu ich online, also localhost


```
String db="jdbc:mysql//localhost:3306/myusername";
```


----------



## L-ectron-X (17. Apr 2007)

Anonymous hat gesagt.:
			
		

> java.sql.SQLException: No suitable driver


http://www.java-forum.org/de/viewtopic.php?t=4768

Und was ist mit dem Port? Wenn der Server lokal läuft muss der Port 3306 geöffnet werden. Ist der geöffnet worden?


----------



## Guest (17. Apr 2007)

Das ist der Port für localhost. Der gleiche womit php drauf zugreift.
Laß mich raten. das geht nicht weil das Applet clientseitig ausgeführt wird.
Und mein Hoster müßte mir einen Port zur verfügung stellen und öffnen.

Dann werde ich eine PHP seite aufrufen und lasse das mit dem JDBC Treiber.
Kann der Aufruf der php seite im Hintergrund geschehen ohne das der Browser die Seite ändert ?


----------



## L-ectron-X (17. Apr 2007)

Das ist der Datenbankport des Servers. localhost ist doch ein URL für den eigenen Rechner. Wie also willst du so eine Datenbank im Internet connecten? Du musst schon den passenden URL angeben. Und din Provider muss Verbindungen von "außen" gestatten.


----------

