Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1533 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Se connecter a une bdd MySQL a partir d'un applet JAVA...

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Se connecter a une bdd MySQL a partir d'un applet JAVA...

n°345485
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 16:00:06  profilanswer
 

'lut!
 
Bah j'aimerais bien me connecter a une bdd, via un applet java..
J'ai donc codé ça :
 

Code :
  1. //E:\Program Files\javasdk\jre\lib\ext\mysql-connector-java-3.1.0-alpha-bin.jar;
  2. import java.awt.*;
  3. import java.sql.*;
  4. public class applet extends java.applet.Applet
  5. {
  6. public void init ()
  7. {
  8.  try
  9.  {
  10.   //com.mysql.jdbc.Driver
  11.   //org.gjt.mm.mysql.Driver
  12.   Class.forName("org.gjt.mm.mysql.Driver" ).newInstance();
  13.  }
  14.  catch (Exception E)
  15.  {
  16.   add(new Label("drivers erreur" ));
  17.  }
  18.  try
  19.  {
  20.   Connection C = DriverManager.getConnection("jdbc:mysql://localhost/base?user=root&password=" );
  21.  }
  22.  catch (SQLException E)
  23.  {
  24.   add(new Label("connexion erreur" ));
  25.  }
  26. }
  27. }


et j'ai fait un SET CLASSPATH = mysql-connector-java-3.1.0-alpha-bin.jar;
avec le packetage ici:
E:\Program Files\javasdk\jre\lib\ext\mysql-connector-java-3.1.0-alpha-bin.jar;
 
 
Mais ça catch à "drivers erreur"  :(  
Merci de me guider dans la bonne voie..
 
Et soyez pas trop dur, j'ai commencé le java ce matin!
 
 


---------------
yvele n'est plus.
mood
Publicité
Posté le 27-03-2003 à 16:00:06  profilanswer
 

n°345519
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 16:13:23  profilanswer
 

:bounce:


---------------
yvele n'est plus.
n°345521
noldor
Rockn'roll
Posté le 27-03-2003 à 16:15:24  profilanswer
 

e.printStackTrace();

n°345525
El_gringo
Posté le 27-03-2003 à 16:16:59  profilanswer
 

Le tout, c'est de réfléchir :  
une applet, c'est côté client. Tu vas pas demander à tous les clients de changer leurs classpath ! Donc t'as pas à toucher au classpath.
Après j'ai jamais fait d'applet, encore moins accèdé à des bases de données avec, mais j'pense que c'est possible.

n°345540
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 16:21:58  profilanswer
 

El_gringo a écrit :

Le tout, c'est de réfléchir :  
une applet, c'est côté client. Tu vas pas demander à tous les clients de changer leurs classpath ! Donc t'as pas à toucher au classpath.


 
Bah oui je sais bien, mais quand je voudrais diffuser l'applet, j'integrerai toutes les classes (packages) dont j'ai besoin dedans..
hum?.. c possible ça.. nan?


---------------
yvele n'est plus.
n°345541
lorill
Posté le 27-03-2003 à 16:22:10  profilanswer
 

http://mindprod.com/jglossapplet.html
 
Ctrf-F  
classpath
Entrée

n°345568
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 16:30:55  profilanswer
 


 
Mais heu le classpath ne rentre pas en jeux.. je n'en suis qua ma phase de tests.. faut juste que ça tourne en local..
Apres je verré.. fo pas mettre la charrue avant les boeufs..
 

Citation :

If they were loaded from a local disk, they can't talk to any webserver.


 
Donc c'est pour ça?
Il faut que je lance l'applet a partir du serveur http.. meme si c'est la meme machine.. hum? ça parrait débile.. mais ptetre qu'il fait la difference..
 
Puis en plus l'erreur c'est avant la connexion.. donc heu.. :/
 
 
PS: désolé d'avance si j'ai raconté pleins de conneries dans ce post.. c'est dur de passer au java apres 4 mois de PHP..


Message édité par Mr yvele le 27-03-2003 à 16:34:25

---------------
yvele n'est plus.
n°345585
lorill
Posté le 27-03-2003 à 16:34:17  profilanswer
 

Mr yvele a écrit :


Puis en plus l'erreur c'est avant la connexion.. donc heu.. :/


humm.
Ctrl F fait pas la même chose chez toi que chez moi on dirait...
 

Citation :


 archive= "Everything.jar,Sub/MoreStuff.zip"      
 
Resource file, classes etc. Your ARCHIVE parameter must have a list of the absolute or relative jar files, separated by commas. (Watch out! The ARCHIVE tag in <OBJECT is space-separated!) If you have too little or too much qualification, or if you fail to use the file naming conventions of your server, you will be in trouble. You are probably best to use absolute urls or fully qualified hard disk file names. Whether the archive is supposed to be relative to the current HTML directory, the CODEBASE, or all elements of the classpath is unclear.

n°345590
lorill
Posté le 27-03-2003 à 16:35:27  profilanswer
 

Mr yvele a écrit :


Il faut que je lance l'applet a partir du serveur http.. meme si c'est la meme machine.. hum? ça parrait débile.. mais ptetre qu'il fait la difference..


oui aussi, il garde l'hostname utilisé par la requete http, donc pas de requete http, pas d'hostname autorisé

n°345592
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 16:35:37  profilanswer
 

lorill a écrit :


humm.
Ctrl F fait pas la même chose chez toi que chez moi on dirait...


 
Moi je croyais que Ctrf-F c'été un mot clef..!   :pt1cable:  
Fallais pas s'emmeller les doigts dans le clavier hein..


---------------
yvele n'est plus.
mood
Publicité
Posté le 27-03-2003 à 16:35:37  profilanswer
 

n°345596
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 16:36:40  profilanswer
 

lorill a écrit :


oui aussi, il garde l'hostname utilisé par la requete http, donc pas de requete http, pas d'hostname autorisé


 
Mais le probleme arrive avant nan?..
Moi il catch à "erreur driver"..
 
J'ai mal fait le set classpath?


---------------
yvele n'est plus.
n°345602
lorill
Posté le 27-03-2003 à 16:38:17  profilanswer
 

Mr yvele a écrit :


J'ai mal fait le set classpath?


bon... je reste calme... relis le message du dessus.
 
LE CLASSPATH UTILISE POUR LES APPLETS N'A RIEN A VOIR AVEC CELUI UTILISE PAR LE SYSTEME.

n°345606
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 16:39:34  profilanswer
 

lorill a écrit :


bon... je reste calme... relis le message du dessus.
 
LE CLASSPATH UTILISE POUR LES APPLETS N'A RIEN A VOIR AVEC CELUI UTILISE PAR LE SYSTEME.


 
 :p  jsuis fatigué.. désolé..


---------------
yvele n'est plus.
n°345644
Serial Cod​er
Posté le 27-03-2003 à 16:54:29  profilanswer
 

[:cupra]


---------------
Je code en série et en parallèle
n°345665
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 17:06:01  profilanswer
 

Comment je fais alors?.. :/
Une piste? A part RTFM..


---------------
yvele n'est plus.
n°345734
benou
Posté le 27-03-2003 à 17:32:57  profilanswer
 

des applets qui font des requêtes SQL c'est pas terrible !!
 
habituellement, on passe plutot par des servlets qui, elles font les requêtes SQL et formate le résulat, et les applets ne font plus qu'afficher ce qu'elles ont reçu de la servlet.

n°345743
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 17:36:02  profilanswer
 

benou a écrit :

des applets qui font des requêtes SQL c'est pas terrible !!
 
habituellement, on passe plutot par des servlets qui, elles font les requêtes SQL et formate le résulat, et les applets ne font plus qu'afficher ce qu'elles ont reçu de la servlet.


 
hum ah oké..
Donc ça c'est beaucoup plus optimisé que de directement ecrire/lire sur la bdd..
Et tu crois que mon hebergeur me laissera lancer un servlet?
 
Bon.. jvé me documenter sur les servelets! merci  :)
 
 
EDIT: puis merci lorill aussi.. qui est quand meme un tout petit peu gentil..  ;)


Message édité par Mr yvele le 27-03-2003 à 17:37:57

---------------
yvele n'est plus.
n°345760
El_gringo
Posté le 27-03-2003 à 17:44:20  profilanswer
 

Mr yvele a écrit :


 
hum ah oké..
Donc ça c'est beaucoup plus optimisé que de directement ecrire/lire sur la bdd..
Et tu crois que mon hebergeur me laissera lancer un servlet?
 
Bon.. jvé me documenter sur les servelets! merci  :)
 
 
EDIT: puis merci lorill aussi.. qui est quand meme un tout petit peu gentil..  ;)  


 
Ben, à la limite, si tu sais faire du Php, ça devrait pas poser de problème que ce soit du Php qui lise et écrive dans la BD...

n°345769
benou
Posté le 27-03-2003 à 17:49:10  profilanswer
 

El_gringo a écrit :


Ben, à la limite, si tu sais faire du Php, ça devrait pas poser de problème que ce soit du Php qui lise et écrive dans la BD...


j'allais le dire ...

n°345770
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 17:49:44  profilanswer
 

El_gringo a écrit :


 
Ben, à la limite, si tu sais faire du Php, ça devrait pas poser de problème que ce soit du Php qui lise et écrive dans la BD...


 
??
 
Mais comment je fait communiquer le java avec le php?
Je fout le php dans un iframe caché et avec le java je rafraichi la iframe en y passant des "parametres"??
Mais c'est un peu du bricolage..
 
Sinon t'es sur que je doive laisser tomber l'idée de client java qui se connecte direct a la bdd..  :??:  ça parait plus simple et plus clair..
Bon encore faut til que je trouve comment integrer ces fuckings drivers a la class.. :/


---------------
yvele n'est plus.
n°345773
El_gringo
Posté le 27-03-2003 à 17:51:03  profilanswer
 

Ben, que tu communiques avec une servlet ou avec du Php, de toute façon, le protocole de comunication est standard : HTTP.

n°345778
benou
Posté le 27-03-2003 à 17:53:10  profilanswer
 

oauis, soit en HTTP (java.net.URL), soit avec une bonne socket de derrière les fagots

n°345781
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 17:56:27  profilanswer
 

Je vois pas trop comment faire techniquement..
Je dois etre trop crevé.. je crois que je vais rentrer a ma maison, boire un chocolat froid!  :)  
 
hum.. a la rigueur avec java je peux ouvrir un fichier texte sur le serveur http.. fichier texte qui sera edité par du php (qui lui, a accés facilement a la bdd)
 
ça a ça que tu pensais?


---------------
yvele n'est plus.
n°345787
benou
Posté le 27-03-2003 à 17:59:49  profilanswer
 

c'est ca ...
ton fichier texte est généré dynamiquement en PHP

n°345789
Mr yvele
yvele n'est plus.
Posté le 27-03-2003 à 18:00:26  profilanswer
 

ah nan oups..
directement par sockets..
 
Mais je vois tjs pas.. il faudrais qu'un script php tourne indefiniment, pour pouvoir mettre a jour les client à tout instants..
 
Ou alors quil se lance des qu'un client lance l'appli.. :/
Oula, jvé rentrer moi..
 
A+ bonne fin de soirée! et merci..
désolé jsuis a la masse!


---------------
yvele n'est plus.
n°345800
benou
Posté le 27-03-2003 à 18:09:12  profilanswer
 

Mr yvele a écrit :

ah nan oups..
directement par sockets..


ca c'est juste pour optimiser les échanges réseaux ... fait ca par un fichier ca marche aussi et c'est plus simple

n°345839
souk
Tourist
Posté le 27-03-2003 à 18:44:22  profilanswer
 

bon, je dis peut etre une betise, donc ne vous genez pas pour me rectifier apres hein !  :)  
 
Une applet charge les classes dont alle a besoin avant d'etre executee. Le nom de ton driver etant une String dans le programme, la classe n'est jamais chargee par ton applet.
Je vois donc plusieurs trucs qui -- peut-etre -- pourrait eventuellement aider, tel que l'on s'autorise a penser dans les milieux autorises (desole, il est tard par chez moi...  :sleep: )
 
1) tu fais explicitement un import org.gjt.mm.mysql.*;
2) tu fous ton applet dans un gros jar qui inclut le driver MySQL, ce qui va forcer l'applet a tout telecharger
3) tu te dis que finalement, une applet c'est chiant, c'est long a charger (surtout s'il faut charger le driver...) et qu'on peut faire des trucs excellent en PHP, qui seront vachement plus rapides parce que faire des requetes distantes c'est vraiment pas optimal  :D  
 
voili voilou bon courage et tiens nous au courant  :hello:  
bonne nuit

n°345864
benou
Posté le 27-03-2003 à 19:18:44  profilanswer
 

souk a écrit :

Le nom de ton driver etant une String dans le programme, la classe n'est jamais chargee par ton applet.


 :o  
 
c'est la façon habituelle de charger un driver JDBC ! son code est bon !

n°345866
benou
Posté le 27-03-2003 à 19:20:06  profilanswer
 

et le reste c'est du troll !
 
(sauf le coup du driver dans le jar qui est obligatoire si tu continue à vouloir faire du jdbc à travers le réseau et si tu ne veut pas installer le drivers chez chacun des clients manuellement)


Message édité par benou le 27-03-2003 à 19:20:16
n°345883
darklord
You're welcome
Posté le 27-03-2003 à 19:51:45  profilanswer
 

souk a écrit :

Le nom de ton driver etant une String dans le programme, la classe n'est jamais chargee par ton applet.


 
bin si elle l'est au moment du Class.forName pour autant qu'elle soit dans le classpath ...


Message édité par darklord le 27-03-2003 à 19:52:05

---------------
Just because you feel good does not make you right
n°346163
gfive
Posté le 28-03-2003 à 09:34:47  profilanswer
 

La solution de faire une partie en PHP et une partie en applet est à mon sens la meilleure :  
1 - ca évite d'avoir à laisser un accès BDD disponible depuis le réseau,
2 - tu sera obligé de mettre qqpart dans le code de ton applet, le login et le password MySQL, donc, un coup de Jad, et tu te fais détruire ta base pas le premier plaisantin venu.
 
Ensuite, pour communiquer, c'est tout con :  
 
1 - ton applet fait une requete HTTP sur une de tes 'pages PHP' (je sais pas comment on appelle ça, j'ai jamais fait de PHP) , qui lui donne un résultat formatté comme ça t'arrange.  
 
2 - l'applet lit la page retournée par son appel HTTP, interprète les infos formattées part le PHP, et affiche le résultat.
 
Exemple :  
 
 

Code :
  1. // Creation de l'URL
  2. URL url = new URL("monsuperPHP" );
  3. // Ouverture de la page, mise en place d'un BufferedReader
  4. BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
  5. //Lecture ligne à ligne
  6. String line;
  7. while ((line = reader.readLine()) != null) {
  8.     //Traitement des infos de ta ligne ici..
  9. }

 
 
Bon, adns ce cas précis, on lit ligne à ligne, mais rien ne t'empêche de lire le résultat complet, et de l'interpréter dans son entier (par exemple, si c'est un contenu XML) Mais bon, dans ton cas, si tu y met simplement des résultats de requêtes mysql, la lecture ligne à ligne est pertinente.
 
Voilà voilà.

n°346175
Mr yvele
yvele n'est plus.
Posté le 28-03-2003 à 09:44:18  profilanswer
 

gfive a écrit :

2 - tu sera obligé de mettre qqpart dans le code de ton applet, le login et le password MySQL, donc, un coup de Jad, et tu te fais détruire ta base pas le premier plaisantin venu.


 
Bah ouè, ça j'y avais pensé hier, juste avant d'aller au lit..
Et ça fait chier!
 
Mais bon, je peu creer un compte MySQL hyper resteint.. qui na que acces à la bdd en lecture seule...  
 
Mais bon, c'est foireux, parceque moi, j'ai besoin que l'applet puisse ecrire.. soit dans la bdd, soit dans le fichier..  :(  
Donc il faut que je laisse au moins l'ecriture libre dans une table de la bdd... mais ça, c'est pas tres secure, si un ptit debil me Jad mon .class.. :/
 
Dois je me tourner vers les servlet?..  
Par exemple caramail, comment il fait?
 
 
EDIT: en tout cas, merci gfive  ;)


Message édité par Mr yvele le 28-03-2003 à 09:44:48

---------------
yvele n'est plus.
n°346178
El_gringo
Posté le 28-03-2003 à 09:48:39  profilanswer
 

Tu dois te tourner vers une techno orientée Serveur HTTP.
Tu préfères les Servlets/JSP au Php ?

n°346179
souk
Tourist
Posté le 28-03-2003 à 09:51:59  profilanswer
 

benou a écrit :


 :o  
 
c'est la façon habituelle de charger un driver JDBC ! son code est bon !


 
oui oui, mais je n'ai jamais dit le contraire  :)

n°346187
Mr yvele
yvele n'est plus.
Posté le 28-03-2003 à 09:57:16  profilanswer
 

El_gringo a écrit :

Tu dois te tourner vers une techno orientée Serveur HTTP.
Tu préfères les Servlets/JSP au Php ?


 
nan nan vive PHP!  [:theorie de nico]  
 
Mais je vois pas comment faire en php.. il faudrais que le client, ai un applet lancé, qui lui meme lance un script PHP?


---------------
yvele n'est plus.
n°346189
gfive
Posté le 28-03-2003 à 09:59:02  profilanswer
 

bah, avec la solution de la communication applet/PHP (ou servlet, hein) par HTTP, tu peux faire de l'écriture!!
 
Imagine un truc tout con :  
 
L'applet fait un appel du genre :  
 
"http://monsite.mondomaine/MysqlManager.php?la requete que tu veux faire"
 
(en formattant la reqûete que tu veux faire avec un petit URLEncoder.encode(requete) pour que l'url soit valide)  
 
et tu fait exécuter la requête par ton PHP, qui retourne le résultat...
 
Avec un machin basique comme ça, tu peux tout faire dans ta base, sans pour autant que l'applet ne contienne d'infos sensibles.
 
Par contre, ça reste risqué : un mec qui passe une requete qui te flingue ta base, par exemple, c'est embêtant...Mais bon, tu peux faire vérifier la requête à ton PHP avant de l'exécuter, histoire de vérifier qu'elle reste dans le domaine de ce que peux faire le client

n°346208
Mr yvele
yvele n'est plus.
Posté le 28-03-2003 à 10:09:30  profilanswer
 

ah ok.. l'applet peu faire un appel
 
"http://monsite.mondomaine/MysqlManager.php?la requete que tu veux faire"
 
sans pour autant que cette derniere se lance dans un browser.. c'est vrai.. pas bete, suffit d'envoyer une requette.. comme en telnet sur port 80 par exemple..
Donc j'ai tout ce qu'il faut.. merci  :jap:  
 
Je pense que c'est une bonne solution...
Mais imaginons que 50 - 100 clients effectuent une lecture de fichier (vers mon http) toutes les 4 secondes chacun.. ça risque pas d'etre trop lourd? je pense que ça ira hein.. rassurez moi.. ça va pas "ramer"


---------------
yvele n'est plus.
n°346209
El_gringo
Posté le 28-03-2003 à 10:10:55  profilanswer
 

Ou faire un système de login avant d'autoriser quelqu'opération que  ce soit.

n°346213
Mr yvele
yvele n'est plus.
Posté le 28-03-2003 à 10:15:58  profilanswer
 

De login? mais de toutes façon la source de l'applet est visible.. donc si je met un login pass.. ça servira a rien..
 
Bah de toutes façon jme débrouille avec mon PHP, lui il sait qui est censé faire quoi.. donc ça va...
Il laissera pas passer une "fausse" requete..  ;)


---------------
yvele n'est plus.
n°346235
El_gringo
Posté le 28-03-2003 à 10:37:38  profilanswer
 

Mr yvele a écrit :

De login? mais de toutes façon la source de l'applet est visible.. donc si je met un login pass.. ça servira a rien..
 
Bah de toutes façon jme débrouille avec mon PHP, lui il sait qui est censé faire quoi.. donc ça va...
Il laissera pas passer une "fausse" requete..  ;)  


 
J'parlais de faire un système de login côté Php, histoire que n'importe quoi ne puisse pas utiliser ton code Php pour faire n'imp dans ta base. Sinon, c'est pas à peine plus sur que l'applet, ça sert à rien.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Se connecter a une bdd MySQL a partir d'un applet JAVA...

 

Sujets relatifs
Piloter Word à partir de VB...Utiliser une DLL à partir d'une autre DLL ca se fait ?
un bon site de java, cours exemple etc, oui mais lequel ?[mysql] comment faire ce classement ?
htaccess : accéder à un répertoire que à partir d'un ou plusieurs repPerformance Mysql
Variable et requete MysqlPeut on lancer un .bat depuis java??
faire simplement un petit prog à partir une feuille exel....[newby inside] -> transformer application en applet
Plus de sujets relatifs à : Se connecter a une bdd MySQL a partir d'un applet JAVA...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR