Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [Java] » Connexion à une DB mysql
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )


Aller à la page n°  
  Mot  Pseudo  
Page : 1 2
Auteur
Sujet : Connexion à une DB mysql
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 02-06-2008 @ 15:40      Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Salut,

Je suis occupé à développer une petite servlet dont, une des fonctions sera d'aller chercher des infos sur une DB en mysql et les afficher sur un site.

Tomcat tourne bien, les pages de mon applications s'affiche.

Mais là où j'ai un problème, c'est que je ne sais pas du tout comment faire pour la connexion à la DB... Après une recherche sur google, j'ai compris que je devais télécharger un driver et faire qlq chose avec... Mais je ne comprends pas bien...

Alors, l'un de vous aurait il la patiance de m'expliquer comment faire ?
Ou l'un de vous peut il m'indiquer un tuto ou autre où c'est expliqué...

Pour info, j'utilise NetBeam et TomCat 6.

Merci pour votre aide.
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13208 (2.4 par jour)


Score :

Message du 02-06-2008 @ 15:41   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 9:36   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Merci

Je n'ai pas encore regardé en détail mais j'ai encore du mal à comprendre, pourtant, je m'en sors en anglais...
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23209 (3.72 par jour)


Score :

Message du 03-06-2008 @ 9:57   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

tu dois regarder dans "JDBC Data Sources" ;)
et placer le jar du drivers de mysql dans le common/lib de tomcat

C'est une facon rapide, mais sale.
Si ton appli grandi, en nombre de user/table/ecran etc ... regarde spring et hibernate.

sinon tu peux aussifaire le mega porc et attaquer direct la db en jdb ;)
http://java.sun.com/docs/books/tutorial/jdbc/overview/index.html

[message édité le 03-06-2008 @ 10:01 Par icy]
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13208 (2.4 par jour)


Score :

Message du 03-06-2008 @ 10:17   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

avec tomcat 6, c'est dans lib/ pas dans common/lib
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 13:06   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Alors, si j'ai bien tout compris, je mets ce fichier "mysql-connector-java-5.1.6-bin.jar" dans "C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib" et c'est tout, je dois rien executer ?
j'avais mis le fichier dans le repertoir de mon appli... j'étais mal parti :)

Merci

----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
bEsTiAn
Le fauve du forum
Membre # 6846

 Avatar du membre
Lieu : Neigembos

Messages :
13208 (2.4 par jour)


Score :

Message du 03-06-2008 @ 13:46   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

tu peux aussi le mettre dans WEB-INF\lib de ton appli en effet, c'est meme bien plus propre ainsi
----------
chwi fatigué...
HP 2540p + HP 650g1
puis un iPad 2 (bêêêrk) pour ma fille
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 13:54   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

ok
je test et je vous dis quoi (ou je crie encore a l'aide :))
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 14:47   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Bon, j'ai encore planté quelque part :)


en utilisant un catch comme ceci :

Code :


catch(SQLException ex)
{
out.println("Erreur SQL : " + ex.toString());
}



j'ai aucun message d'erreur mais ce qui est après le code où je "joue" avec les données de la DB ne s'affiche pas

par contre, si j'utilise ceci comme catch :

Code :


catch(Exception ex)
{
out.println("Erreur : " + ex.toString());
}



j'ai ça comme message : Erreur : java.lang.NullPointerException

bon, je suppose que c'est un problème de pointeur...

voila la partie de mon code où doit se trouver l'erreur :

Code :



Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Messages");
while(rs.next())
{
out.print(rs.getString("TitreMessages"));
}
rs.close();
stmt.close();

con.close();



Si vous avez une idée..

Merci


----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 14:54   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Voici la méthode de ma connexion, c'est peut etre elle que je ne fais pas correctement...

Code :


public void init(ServletConfig conf) throws ServletException
{
super.init(conf);
try
{
Class.forName("com.mysql.jdbc.Driver");
con =DriverManager.getConnection ("jdbc:mysql://127.0.0.1/Valves", "root", "");
}
catch(Exception e)
{
System.out.println(e);
}
}



Ma DB s'appel Valves et j'utilise un MySQL en local qui tourne sur le 127.0.0.1

Merci

----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23209 (3.72 par jour)


Score :

Message du 03-06-2008 @ 15:25   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

java.lang.NullPointerException = un object est null au moment ou tu l'utilises (en faisant object.methode par ex).

ps: quand tu as une erreur, c'est bien de fournir une partie du stackTrace, les 5/6 1ere ligne.
de plus tu peux voire dans le stacktrace, le numero de la ligne ou tu as l'exceptions.

dans un 1er tps, quand t'as une exp, tu peux faire e.printStackTrace(), pour avoir la totale. tu gerera les erreurs plus tard...


[message édité le 03-06-2008 @ 15:29 Par icy]
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 15:26   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

c'est possible que ce soit ça qui plante :

DriverManager.getConnection ("jdbc:mysql://127.0.0.1/Valves", "root", "");

alors mon objet con est null ?

----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23209 (3.72 par jour)


Score :

Message du 03-06-2008 @ 15:34   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

regarde le numero de ligne dans le stacktrace ;)
met un breakpoint si y faut
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 15:40   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

a mon avis, je dois pas faire correctement ma connexion car mon con reste null
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 16:21   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

je reviens avec cette histoire de driver, si je ne l'avais pas mis au bon endroit, j'aurai un message a l'execution ? non ?

pff.. là je commence à bloquer serieusement.... ça m'enerve et ça n'aide pas....

bon, je vais me changer les idées qlq minutes...
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
bambino
Sage
Membre # 8669

 Avatar du membre
Lieu : lille

Messages :
1257 (0.23 par jour)




Message du 03-06-2008 @ 17:59   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

le format de la chaine de connexion en me parait pas bon. pour my sql ca doit etre :

jdbc:mysql://host_name: port/dbname

bref, il manque le numero de port qui doit etre par defaut 3306 pour mysql

[message édité le 03-06-2008 @ 17:59 Par bambino]
----------
Sachant que Woody Allen a déclaré: "Quand j'écoute Wagner, j'ai envie d'envahir la pologne", quelle musique écoute Georges Bush jr?
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 19:59   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

J'ai fais l'essais en mettant :
Code :


connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/Valves", "root", "");



mais j'ai le meme résultat...
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23209 (3.72 par jour)


Score :

Message du 03-06-2008 @ 20:56   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

et t'es donc certain que le nullpointer arrive sur la ligne Statement stmt = con.createStatement() ?
"normalement" si la connection ne se fait pas, t'as une autre exp, dans le init, et y'a aucune raison qu'il en fasse pas.
si tu mettais le code entier ca aiderait

----------
"May He touch you with His Noodly Appendage"
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 21:18   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

J'ai mis des lignes des out.println avant la connexion, après,... J'ai la ligne "début de connexion et requete" qui apparait pas pas le reste

Code :


import java.sql.*;
import java.io.*;

import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
*
* @author User
*/
public class ViewMess extends HttpServlet {

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/

private Connection connexion;
private PrintWriter out;

public void init(ServletConfig conf) throws ServletException
{
super.init(conf);
try
{
Class.forName("com.mysql.jdbc.Driver");
connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/Valves", "root", "");
}
catch(Exception e)
{
System.out.println(e);



}
}


protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
out = response.getWriter();
try
{

out.println("<html>");
out.println("<head>");
out.println("<title>Site des valves éléctronique de l'ESA</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Valves éléctroniques</h1>");
// ICI Connexion à la DB afin de récupérer tous les messages

out.println("début connexion et requete");

Statement stmt = connexion.createStatement();

out.println("avant requete");

ResultSet rs = stmt.executeQuery("SELECT * FROM Messages");

out.println("Select fait");

while(rs.next())
{
out.print(rs.getString("TitreMessages"));
}
rs.close();
stmt.close();

connexion.close();



// Initialisation d'un tableau afin de tester l'affichage sur le site
String TabMess[][] = new String[20][4];
TabMess[0][0] = "20/09/2007";
TabMess[0][1] = "Anulation cours";
TabMess[0][2] = "Annlation du cours de java";
TabMess[1][0] = "23/02/2009";
TabMess[1][1] = "Examen";
TabMess[1][2] = "Examen de JAVA ce 30/02/2009";

out.println("<table border=1>");
out.println("<tr><th width=150>Date</th><th width=250>Titre</th><th width=300>Message</th><tr>");

for (int i = 0; i<TabMess.length ; i++)
{
if(TabMess[i][0] == null)
{
break;
}
out.println("<tr>");
out.println("<th>");
out.println(TabMess[i][0]);
out.println("</th>");
out.println("<th>");
out.println(TabMess[i][1]);
out.println("</th>");
out.println("<th>");
out.println(TabMess[i][2]);
out.println("</th>");
out.println("<tr>");


}
out.println("<table>");
out.println("<body>");
out.println("<html>");

}
catch(SQLException ex)
{
out.println("Erreur SQL : " + ex.toString());

}

catch(Exception ex)
{
out.println("Erreur : " + ex.toString());

}

finally
{
out.close();
}
}



[message édité le 03-06-2008 @ 21:19 Par Keanu]
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23209 (3.72 par jour)


Score :

Message du 03-06-2008 @ 21:37   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

pr info, ta connexion est instancié dans le init, et est fermé(close) a la 1ere exec de service. donc ton servlet ne marchera que la 1er fois qu'il serra appelé, vu qu'il n'est détruit que lors de l'arret de tomcat.
tu dois placer ton con.close dans le destroy.

'fin, ca fait longtemps que j'ai plus fait de jdb dans un servlet :p ... c'est vriament la medthode la plus sale ;)

[message édité le 03-06-2008 @ 21:38 Par icy]
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 03-06-2008 @ 21:46   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

ok, j'ai ajouté ceci à la fin de mon code :

Code :


public void destroy()
{
try
{
connexion.close();
}
catch(SQLException ex)
{
out.println(ex.toString());
}
}



Mais je ça n'est pas la cause de mon problème... sniff...


Merci de votre aide
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 04-06-2008 @ 9:55   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

comment fonctionne le stacktrace ???

ça peut me permettre de trouver quel est l'objet null ?

merci
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 04-06-2008 @ 10:22   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

si je mets ceci :
Code :


Class.forName("com.mysql.jdbc.Driver");
connexion = DriverManager.getConnection("jdbc:mysql://127.0.0.1/Valves", "root", "");



dans la méthode processrequest, j'ai un autre message d'erreur :

Erreur SQL : com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Base 'valves' inconnue

il y a une différence mais c'est toujours pas ça.. lol

Là, je suis au moins sûr qu'il cherche à se connecter à la db

Edit : je me suis planté dans le nom de ma DB !!!! c'est ma faute, ma tres grande faute, je vais me flageler...


[message édité le 04-06-2008 @ 10:26 Par Keanu]
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
icy
Administrateur
Membre # 871

 Avatar du membre
Lieu : Bxl

Messages :
23209 (3.72 par jour)


Score :

Message du 04-06-2008 @ 12:41   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

:lol:
----------
"May He touch you with His Noodly Appendage"
- Haut de page -
Keanu
Vétéran
Membre # 4886

 Avatar du membre
Lieu : Sart-Eustache (Fosse-la-ville) - Belgique

Messages :
2034 (0.36 par jour)




Message du 04-06-2008 @ 14:23   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

c'est fini de te foutre de moi comme ça !!! lol

ps : mais ce n'était pas l'erreur principale :D
----------
Laptop : Asus K53 I5-2410M - 8Go - 500Go - DVD+-RW - 15,6 - Win7HP
Desktop : En attente ;)
- Haut de page -
Aller à la page n°  
  Mot  Pseudo  
Page : 1 2


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.067 secondes