Problème lien Java/Mysql

Fermé
Friday_XIII - 23 nov. 2008 à 10:40
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 25 nov. 2008 à 00:10
Bonjour,
je souhaiterai accéder à ma base de donnée Mysql depuis une applet Java.
Le principe de mon applet : un pendu qui en fonction du style choisit par l'utilisateur va chercher les artistes correspondant au style. Les artistes sont stockés dans un Vector, et à l'aide d'un random, un artiste est choisi au hasard.

Je me suis renseigné sur le net, j'ai fait plein de tutos en anglais, en français, et je pense avoir un peu compis comment faire.

j'ai donc télécharger mysql-connector-java-5.0.8 et je l'ai décompressé dans un répertoire jdbc dans c:\
Ensuite dans le code de mon applet, voici ce que j'ai mis :

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

String url = "jdbc:mysql://sql.free.fr:3306/nom_bdd";
Connection conn = DriverManager.getConnection(url,"login","mdp");

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT nomArtiste FROM Artiste");

Vector Mots = new Vector(10,5);
while(rs.next()){
String s = rs.getString("nomArtiste");
Mots.add(s);
}

String mot=tirageMots(Mots);// on tire un mot au sort*/
-----------------------------------------------------------------------------------------------------------------
j'ai géré les exceptions, en affichant le nom de l'exception, ainsi que son texte dans une boite d'affichage

J'ai aussi mis à jour ma variable PATH avec ceci :
C:\jdbc\mysql-connector-java-5.0.8\mysql-connector-java-5.0.8-bin.jar;

seulement dans tous les tutos, c'est expliqué pour une connction en local, ce que je souhaite pas, puisque ma bdd se trouve chez free.

bref, quand je compile aucune erreur, et quand je lance l'applet, voici ce que j'ai :
ClassNotFoundExcpetion
com.mysql.jdbc.Driver

je ne sais plus quoi faire ... pourriez vous m'aider s'il vous plait ?
A voir également:

1 réponse

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
23 nov. 2008 à 21:20
Bonsoir,
Je pense qu'il ne faut pas ajouter le connecteur dans ta variable d'environnement PATH (de toutes façons ton programme va s'exécuter sur le serveur, donc il ne connaitra pas l'état de cette variable), mais l'ajouter au classpath de ton application (sous eclipse ça se fait en cliquant droit sur ton projet, Build path ...).

Cordialement,
0
Friday_XIII
24 nov. 2008 à 22:46
merci beaucoup de ton aide ;)
mais saurais tu comment faire sans eclipse :s ?
nous n'avons pas le droit de nous en servir car c'est un peu trop évident :p
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329 > Friday_XIII
24 nov. 2008 à 23:05
Argh !
Non Friday_XIII, je ne peux te laisser dire ça !
Il ne faut pas oublier que Eclipse est un IDE, son but est donc d'améliorer la productivité et permettre aux développeurs de travailler agréablement en fournissant de nombreuses fonctionnalités géniales. Ce n'est pas "évident" de programmer avec Eclipse : un mauvais programmeur programmera de la merde avec Eclipse, alors qu'un bon programmeur fera des programmes encore meilleurs.

Apprendre à programmer sans Eclipse est une bonne chose (au moins on se rend vraiment compte de tous les aspect de la programmation qui sont peut-être simplifiés avec Eclipse, comme justement la gestion du classpath, les différents imports, la compilation...).
Personnellement à l'école j'ai appris le Java sur emacs (que j'aime beaucoup d'ailleurs). Maintenant que j'ai testé Eclipse, je peux te dire que je ne programmerai plus jamais en java sur emacs.

Pour revenir au problème, regarde ici :) http://java.sun.com/j2se/1.3/docs/tooldocs/win32/classpath.html
Tu dois passer un argument -classpath lors de l'exécution

Cordialement,
0
Friday_XIII > Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009
24 nov. 2008 à 23:27
quand je disais trop facile, j'entendais par là que Eclispse aide assez bien le développeur, ce qui n'est pas une très bonne chose quand on apprend. Perso, on a utilisé Textpad en ajoutant 3outils : compilation, exécution Application, exécution Applet.

Je vois effectivement ce que je dois faire (j'ai même le .jar qu'il faut), sauf que je ne sais pas comment faire.
je développe une applet qui s'exécutera sur un serveur free. Donc je ne pourrai pas mettre l'option -classpath lors de l'execution (qui se met dans l'invite de commande si j'ai bien compris). Dois je l'insérer dans mon code ? si oui comment, et si non que dois je faire ?

je me rends compte maintenant qu'il y a une faute dans mon code je dois écrire :
String url = "jdbc:mysql://localhost:3306/nom_bdd";
car sur le serveur, le tout se fera en local.
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329 > Friday_XIII
25 nov. 2008 à 00:10
Bonsoir,
Effectivement, si tu crées une applet, on ne peut pas le faire à l'exécution.
Javac permet aussi de déterminer le classpath (donc à la compilation) : http://java.sun.com/j2se/1.3/docs/tooldocs/win32/javac.html
Cependant documentes toi sur ce mécanisme (pour les applets la gestion du classpath est un peu différente je crois).

je me rends compte maintenant qu'il y a une faute dans mon code je dois écrire :
String url = "jdbc:mysql://localhost:3306/nom_bdd";
car sur le serveur, le tout se fera en local.

Pas du tout. Les applets s'exécutent côté client (comme le flash ou le javascript par exemple), autrement dit, il faut que tu laisses l'adresse telle qu'elle était.

Cordialement,
0