Probleme de statement et d ecriture dans ma base et... [Résolu]

Messages postés
75
Date d'inscription
mardi 11 novembre 2008
Statut
Membre
Dernière intervention
2 février 2012
- - Dernière réponse : cs_diabohit
Messages postés
75
Date d'inscription
mardi 11 novembre 2008
Statut
Membre
Dernière intervention
2 février 2012
- 30 mars 2009 à 12:12
slt tout le monde!



voici ma troisieme demande en esperant que quelqu'un puisse resoudre mon probleme  




il s agit de lire et ecrire dans une base de donnée mysql ap artir d'une servlet!

*pour ecrire dans ma base de donnée j ai fais cette class Client et la servlet sinscrire; dont le code est respectivement cela:


____________________________________________________________________
package metier;



import java.sql.*;
import java.io.*;
import java.util.*;
import sun.applet.Main;
public class client
{
private Connection c;
private Statement stmt;
private ResultSet rs ;
private String query;
public client() throws ClassNotFoundException, SQLException
{
 Class.forName("com.mysql.jdbc.Driver");
 c = DriverManager.getConnection("jdbc:mysql://localhost:3306/rno","root","");
 stmt = c.createStatement(); }



public void sinscrire(String mr_mde, String nom, String prenom, String login, String password) throws SQLException{
    query = "insert into login_password values('"+mr_mde+"','"+nom+"','"+prenom+"','"+login+"','"+password+"')";
   

stmt.executeUpdate(query);
    stmt.close();
}
public void liste() throws SQLException{
    ResultSet rs =  stmt.executeQuery("select * from login_password");
    while(rs.next()){
    System.out.println(rs.getString(1));}
}




public static void main(String args[])
{try{
client c = new client();
c.liste();
c.sinscrire("mr_mde","nom","prenom","login","password");
 System.out.println("ok");
 c.liste();
 }
 catch(Exception e){e.printStackTrace();}
}
}
_____________________________________________________________________

package servlet;



import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
import metier.* ;
public class sinscrire extends HttpServlet {
public void doGet( HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res. setContentType("text/html");
PrintWriter out = res. getWriter();
String mr_mde = req. getParameter("mr_mde");
String nom = req. getParameter("nom");
String prenom = req. getParameter("prenom");
String login = req. getParameter("login");
String password = req. getParameter("password");
System.out.println(nom+prenom);
try{
client c = new client();
c.sinscrire(mr_mde,nom,prenom,login,password);
out. println("< HTML>< BODY>");
out. println("< h1>"+mr_mde+" "+nom+" "+prenom+" est inscrit!</h1>");
out. println("</HTML>");}



catch(Exception e){
    out. println("< HTML>< BODY>");
out. println("< h1> Désolé "+mr_mde+" "+nom+" "+prenom+", nous avons un problème dans le système d'inscription.</h1>");
out. println("</HTML>");
 e.printStackTrace();
}
}}
_________________________________________________________________

le premier code me donne une erreur dans la ligne en rouge

*ma question est est-ce la maniere qu on doit ecrire le Statement stm?
*ma deuxieme question est: si pour ecrire des donnée dans ma base j'utilise cette fonction:
--------------------------------------------------

public void sinscrire(String mr_mde, String nom, String prenom, String login, String password) throws SQLException{
    query = "insert into login_password values('"+mr_mde+"','"+nom+"','"+prenom+"','"+login+"','"+password+"')";
    stmt.executeUpdate(query);
    stmt.close();
}

--------------------------------------------------
alrs comment puis-je faire pour lire des donnée de ma base??? et les comparer avec des autres varibles dans mon code???
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
21
3
Merci
Salut,

bein l'ami ton code semble correct, peut être que tu te trompes à propos de l'un des attributs dans ta requête, ou dans le nom de la table : je dis peut être car tu n'as pas spécifié l'exception que tu reçois..

essayes par exemple d'exécuter la même requête via mySQL..

bonne chance..

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Chatbour
Messages postés
75
Date d'inscription
mardi 11 novembre 2008
Statut
Membre
Dernière intervention
2 février 2012
0
Merci
voici la ligne eronée dans la class client (la ligne colorée en rouge)

--------------------------------------------------------------------------
package metier;import java.sql.*;
import java.io.*;
import java.util.*;
import sun.applet.Main;
public class client
{
private Connection c;
private Statement stmt;
private ResultSet rs ;
private String query;
public client() throws ClassNotFoundException, SQLException
{
 Class.forName("com.mysql.jdbc.Driver");
 c = DriverManager.getConnection("jdbc:mysql://localhost:3306/rno","root","");
 stmt = c.createStatement(); }

public void sinscrire(String mr_mde, String nom, String prenom, String login, String password) throws SQLException{
    query = "insert into login_password values('"+mr_mde+"','"+nom+"','"+prenom+"','"+login+"','"+password+"')";
    stmt.executeUpdate(query);
    stmt.close();
}
public void liste() throws SQLException{
    ResultSet rs =  stmt.executeQuery("select * from login_password");
    while(rs.next()){
    System.out.println(rs.getString(1));}
}

public static void main(String args[])
{try{
client c = new client();
c.liste();
c.sinscrire("mr_mde","nom","prenom","login","password");
 System.out.println("ok");
 c.liste();
 }
 catch(Exception e){e.printStackTrace();}
}
}
Commenter la réponse de cs_diabohit
Messages postés
75
Date d'inscription
mardi 11 novembre 2008
Statut
Membre
Dernière intervention
2 février 2012
0
Merci
merci pour ta reponse mon ami  

mais j ai dit que l erreur est dans la ligne suivante:

stmt.executeUpdate(query);

est-ce que cette expression est correcte?  je ne crois pas!
aidez moi SVP..........
Commenter la réponse de cs_diabohit
Messages postés
764
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
6 septembre 2010
21
0
Merci
Re-salut,

ce que j'ai demandé est l'exception que ton compilateur renvoi : l'exception levée suite à l'exécution de ton code..

as-tu exécuté la même requête dans mySQL ?
Commenter la réponse de cs_Chatbour
Messages postés
75
Date d'inscription
mardi 11 novembre 2008
Statut
Membre
Dernière intervention
2 février 2012
0
Merci
suite a l execution de mon code Netbeans renvoi moi ca:

___________________________________________________________________
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
compile-single:
run-main:
1
java.sql.SQLException: Column count doesn't match value count at row 1
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1605)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524)
        at metier.client.sinscrire(client.java:21)
        at metier.client.main(client.java:33)
BUILD SUCCESSFUL (total time: 1 second)
________________________________________________________________

j ai exeuté la meme requete avec mysql, et ca marche bien
Commenter la réponse de cs_diabohit
Messages postés
75
Date d'inscription
mardi 11 novembre 2008
Statut
Membre
Dernière intervention
2 février 2012
0
Merci
ca y est mon ami!
j ai verifié la raquete MySql;  c'etait une faute dans la requete Mysql comme tu m'a dit!
merci enormement!!!!
Commenter la réponse de cs_diabohit

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.