Probleme de statement et d ecriture dans ma base et...

Résolu
cs_diabohit Messages postés 75 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 février 2012 - 28 mars 2009 à 19:19
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???

6 réponses

cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
28 mars 2009 à 21:47
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..
3
cs_diabohit Messages postés 75 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 février 2012 1
28 mars 2009 à 19:23
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();}
}
}
0
cs_diabohit Messages postés 75 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 février 2012 1
29 mars 2009 à 21:06
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..........
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
29 mars 2009 à 22:14
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_diabohit Messages postés 75 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 février 2012 1
30 mars 2009 à 11:54
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
0
cs_diabohit Messages postés 75 Date d'inscription mardi 11 novembre 2008 Statut Membre Dernière intervention 2 février 2012 1
30 mars 2009 à 12:12
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!!!!
0
Rejoignez-nous