aide java - Java - Programmation
Marsh Posté le 19-04-2003 à 21:32:53
il me semble qu'il ne faut pas de point virgule a la fin de ta requete (dans la String)
c'est possible que l'erreur vienne de la
Marsh Posté le 22-04-2003 à 13:31:06
j'ai fait cette servelt qui est assez inhabituelle car elle INSERE des donnes,j'attends donc que quelqu un de competent voit l'interet de reprendre la chose car cela peut servir et me la corrige en la testant merci.
Marsh Posté le 22-04-2003 à 13:35:28
fredjava2 a écrit : j'attends donc que quelqu un de competent... et me la corrige en la testant merci. |
Marsh Posté le 22-04-2003 à 13:36:09
pour une fois que c'est pas moi mais .............
Marsh Posté le 22-04-2003 à 13:40:22
je n'ai pas d'environnment j2ee configuré et pas de base en local,cela sera + que possible pour quelqu un qui connait de voir le vice et de la tester ensuite
Marsh Posté le 22-04-2003 à 14:14:36
moi je dis trol
ban
Marsh Posté le 22-04-2003 à 15:02:49
fredjava2 a écrit : nom = request.getParaMeter("Nom" ); |
C'est plutot:
result = stmt.updateQuery (
"INSERT INTO polo2_membres(nom,prenom)
VALUES ('"+nom+"','"+prenom+"'" );
Marsh Posté le 22-04-2003 à 15:03:56
fredjava2 a écrit : servelt qui est assez inhabituelle car elle INSERE des donnes |
Marsh Posté le 22-04-2003 à 15:04:12
ernst a écrit : |
oups, updateQuery ne retourne rien.
Desole
Marsh Posté le 22-04-2003 à 15:04:15
ReplyMarsh Posté le 22-04-2003 à 15:04:46
Cherrytree a écrit : ça existe getParaMeter ? |
non
Marsh Posté le 22-04-2003 à 15:05:05
ernst a écrit : |
si, mais c'est executeUpdate la methode
Marsh Posté le 22-04-2003 à 15:08:10
et en plus c'est executeUpdate();
Oui, enfin ca ne revoit pas de ResultSet, comme le disait mon post...
Marsh Posté le 22-04-2003 à 15:09:31
ernst a écrit : |
ben ça renvoie le nombre de records "touchés" par la requete
Marsh Posté le 22-04-2003 à 19:26:10
les + sont faux,c'est une requete sql pas besoin de mettre des +qui ne sont necessaires que lorsque on met quelque chose DANS DU JAVA OR LA C EST PAS DU java c'est sql.
par contre le M ok.
je voudrais par contre si c'est juste le code du traitement de la requete par executupdate(),mais à mon avis ça aussi c'est faux car on ne met rien à jour,on INSERE des donnes,pour un select c'est la bonne methode alors pour un insert il n' y a pas de raison que cela change
Marsh Posté le 22-04-2003 à 19:34:32
fredjava2 a écrit : les + sont faux,c'est une requete sql pas besoin de mettre des +qui ne sont necessaires que lorsque on met quelque chose DANS DU JAVA OR LA C EST PAS DU java c'est sql. |
Non, ce qu'il te dit c'est :
Citation : result = stmt.updateQuery("INSERT INTO polo2_membres (nom,prenom) VALUES ('" + nom + "','" + prenom + "'" ); |
nom et prenom sont 2 variables JAVA. Il a pensé que tu voulais peut-être insérer des variables dans ta requête et non pas les chaînes "nom" et "prénom".
fredjava2 a écrit : |
Alors si t'as lu la Javadoc de Statement, tu t'aperçois que :
* pour les requêtes de type INSERT, UPDATE ou DELETE la méthode executeUpdate() est indiquée.
* pour les requêtes de type SELECT ou autre requêtes renvoyant un résultat, c'est executeQuery() qui est recommandée.
La différence : INSERT ne renvoie pas de résultat, contrairement à un SELECT. Maintenant, si t'as envie, tu peux aussi utiliser executeQuery() pour faire un INSERT.
Marsh Posté le 22-04-2003 à 19:36:50
alors c'est exactement la meme structure suaf que à la place de executequery on met executeupdate?
Marsh Posté le 22-04-2003 à 19:40:52
fredjava2 a écrit : alors c'est exactement la meme structure suaf que à la place de executequery on met executeupdate? |
Non, pas tout à fait : http://java.sun.com/j2se/1.4.1/doc [...] ement.html
La méthode executeUpdate() renvoie un int alors que executeQuery() renvoie un ResultSet. Normal, puisque pour executeUpdate on a juste besoin de savoir le nombre de lignes affectées, alors que pour executeQuery() on a un résultat plus compliqué qui dépend totalement de la requête.
Marsh Posté le 22-04-2003 à 20:07:20
fredjava2 a écrit : les + sont faux,c'est une requete sql pas besoin de mettre des +qui ne sont necessaires que lorsque on met quelque chose DANS DU JAVA OR LA C EST PAS DU java c'est sql. |
putain cte connard
Marsh Posté le 23-04-2003 à 08:06:48
the real moins moins a écrit : putain cte connard |
ouais il se permet de contredire quelqu'un qui lui donne la solution
inon, Mr fred, rien qu'avec le coup du getParaMeter à la place du getParameter, ca veut dire que ta classe ne compile pas. Alors si à la place de dire "cela ne marche pas" tu détaillais un peu ce qui ne marche pas et que tu donnais le message d'erreur que tu obtiens ...
Marsh Posté le 24-04-2003 à 13:52:09
fredjava2 a écrit : ça veut dire quoi "trol"? |
C'est tous les topics que tu as fais !!
Presque tous les topics que tu crées sont fermés
Pour quelqu un qui est supposé etre ingenieur Logiciel spe J2ee, qui se dis un génie, au fait c 'est quand que tu nous écrases avec ta porsche ?
En fait je ne sais pas si je dois répondre a ta question JAVA vu ton attitude dans les autres topics.
Mais les autres membres t'ont deja donné la réponse donc...
Marsh Posté le 24-04-2003 à 14:02:55
fredjava2 > étant donné que tu sembles être une bête en programmation Java, je souhaiterais te demander un truc.
Je suis un expert en XHTML/CSS, Javascript, etc... Ca fait plusieurs mois que j'entends un truc qui me turlupine : il semblerait qu'on puisse insérer du Java directement dans une page HTML.
J'ai essayé plusieurs fois, avec les fameuses balises <java>...</java> et ça ne marche pas. J'ai un runtime error à la ligne 12.
Je suis persuadé que c'est faisable ! Etant donné que tu es expert en génie logiciel, j'espère que tu pourras m'aider, car j'ai vraiment envie d'agrémenter mon site web
Je te remercie par avance
Marsh Posté le 19-04-2003 à 17:24:12
voici un servlet qui insere des donnees dans une base,or en le testant directement sur internet couplé à un fichier html de formulaire avec juste deux champs à remplir:nom et prenom,cela ne marche pas.
je n'ai pas d'environnement de developpement de servlet avec une base en local afin de tester ma servlet,j'aimerais donc que quelqu un qui possède ceci le teste et apporte les eventuelles corrections à mon servlet,de raisonnement ou de syntaxe,en tous cas le plus gros est fait.
package sans_titre10;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class Servlet1 extends HttpServlet {
private static final String CONTENT_TYPE = "text/html";
/**Initialiser les variables globales*/
public void init() throws ServletException {
Connection con = null;
public void init ()
throws ServletException {
//ServletConfig cfg;
//super.init (cfg);
// Load driver
//String name = cfg.getInitParameter("driver" );
Class.forName("org.gjt.mm.mysql.Driver" );
// Get Connection
con = DriverManager.getConnection ("jdbc:mysql:http://ip","login","pass" );
}
/**Traiter la requête HTTP Get*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<font color=\"green\">" );
out.println("<p>Le servlet a reçu un GET. Ceci est la réponse.</p>" );
out.println("</font>" );
}
/**Traiter la requête HTTP Post*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
// Have browser ignore cache - force reload
response.setHeader ("Expires",
"Mon, 01 Jan 1990 00:00:00 GMT" );
Statement stmt = null;
ResultSet result = null;
String nom = "";
String prenom = "";
nom = request.getParaMeter("Nom" );
prenom = request.getParaMeter("Prenom" );
try {
// Submit query
stmt = con.createStatement();
result = stmt.executeQuery (
"INSERT INTO polo2_membres(nom,prenom)
VALUES ('nom','prenom';" );
out.println("<html>" );
out.println("<head><title>Servlet1</title></head>" );
out.println("<body bgcolor="#000000"><font face="Felix Titling" size="7" color="#996669">" );
out.println("<center><h1>il fait beau.</h1><br><br><br><font face="Felix Titling" size="4" color="#996669">le beau temps va durer 4 jours<a href="http://www.domaine.com/">ici</a>." );
out.println("</body></html>" );
} finally {
if(result != null){
result.close();
}
if(stmt != null){
stmt.close();
}
}
out.flush();
out.close();
}
/**Nettoyer les ressources*/
public void destroy() {
super.destroy();
con.close();
}
}