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

cs_diabohit 75 Messages postés mardi 11 novembre 2008Date d'inscription 2 février 2012 Dernière intervention - 28 mars 2009 à 19:19 - Dernière réponse : cs_diabohit 75 Messages postés mardi 11 novembre 2008Date d'inscription 2 février 2012 Dernière intervention
- 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
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 28 mars 2009 à 21:47
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..

Merci cs_Chatbour 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 70 internautes ce mois-ci

Commenter la réponse de cs_Chatbour
cs_diabohit 75 Messages postés mardi 11 novembre 2008Date d'inscription 2 février 2012 Dernière intervention - 28 mars 2009 à 19:23
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
cs_diabohit 75 Messages postés mardi 11 novembre 2008Date d'inscription 2 février 2012 Dernière intervention - 29 mars 2009 à 21:06
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
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 29 mars 2009 à 22:14
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
cs_diabohit 75 Messages postés mardi 11 novembre 2008Date d'inscription 2 février 2012 Dernière intervention - 30 mars 2009 à 11:54
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
cs_diabohit 75 Messages postés mardi 11 novembre 2008Date d'inscription 2 février 2012 Dernière intervention - 30 mars 2009 à 12:12
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.