Servlets + requete sql

b4mourad Messages postés 1 Date d'inscription dimanche 21 mai 2006 Statut Membre Dernière intervention 21 mai 2006 - 21 mai 2006 à 20:16
cs_nimatik Messages postés 10 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 5 juin 2006 - 4 juin 2006 à 21:17
Bonjour.

J'ai crée un formulaire qui est lié à une servlet afin d'insérer des données dans une base Access

La connexion fonctionne bien et j ai testé la servlet en passant des arguments en dur dans le code et tout fonctionne bien.


Par contre j'ai plus de mal à insérer les données récupérées depuis le formulaire.

Je n arrive pas à gérer ma requête SQL avec les variables.

J'ai un peu tout essayer mais sans grand succès et je suis incapable de
retrouver un exemple que j avais vu sur le site de Sun ou ils donnaient
un exemple très clair d'insertion via JDBC depuis un formulaire.

Si quelqu'un peut me donner une piste ce serait cool.

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

/**
* Servlet permettant d'insérer de nouveaux banc d'essais dans la base
* de données
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

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

public class ServletBanc extends HttpServlet
{
public void doPost(HttpServletRequest req, HttpServletResponse rep) throws ServletException, IOException

{
/** Récupération dans des variables des informations saisies dans le formulaire */
PrintWriter pw = rep.getWriter();
nom = req.getParameter("nom");
marque = req.getParameter("marque");
diam = req.getParameter("diam");
cpt = req.getParameter("cpt");

if (nom!=null)
{
/** Affichage pour tester le contenu des variables */
pw.println("Nom de la norme : "+nom);
pw.println("
");
pw.println("Marque : "+marque);
pw.println("
");
pw.println("diam : "+diam+" m");
pw.println("
");
pw.println("Compteur : "+cpt);
pw.println("
");
}
else {pw.println("Erreur, l'identifiant ne peut etre nul");}

/**Chargement du pilote JDBC - ODBC */
try
{
//Configuration et connexion à la base
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dataSourceName = "mdbTEST";
String dbURL = "jdbc:odbc:" + dataSourceName;
Connection con = DriverManager.getConnection(dbURL, "","");
// création du Statement
Statement s = con.createStatement();
s.execute("INSERT INTO banc VALUES ('"+nom+",'"+marque+",'"+diam+",'"+cpt+")");

s.close(); con.close();
}
catch (Exception e) {System.out.println("Error: " + e);}

}
private String nom;
private String marque;
private String diam;
private String cpt;

}

1 réponse

cs_nimatik Messages postés 10 Date d'inscription samedi 25 mars 2006 Statut Membre Dernière intervention 5 juin 2006
4 juin 2006 à 21:17
si je me trompe pas faut utliser comme ca parceque l a bd est un peut choulou

faut ustliser les " au lieu de '
like :
c est un echantillon de mon programme :
"select * from motdurlnbr where " +
"mot regexp "^"+mot+"|"+mot+"$" order by tabkoul desc limit 10";

tiens moi au courant
bn courage
0
Rejoignez-nous