IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

JSP + JAVA problème insertion dans ma table postgresql


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 0
    Points
    0
    Par défaut JSP + JAVA problème insertion dans ma table postgresql
    Bonjour,

    J'ai un petit soucis pour réaliser des insertions dans une base de donnée (NB :Les insertions je n'ai aucun problème a réaliser les insert avec en JAVA mais en utilisant JSP je n'y arrive pas). Dans un premier temps j'ai réussi à récupérer les différentes infomrations. Je voudrai en insérer maintenant mais ma méthode ne fonctionne pas et je ne suis pas sur d'être sur la bonne voie.

    Voici mes codes :
    fichier JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <html>
     
    	<head><title>
    		insertion dans la base
    	</title></head>
     
    <body>
    	<form method="POST">
    	reference :	<input type=text name="refpro"><BR>
     
    	libelle :	<input type=text name="libelle"><BR>
    	prix :		<input type=text name="prix"><BR>
    	qstock :	<input type=text name="qstock"><BR>
    			<input type="submit" value="insert"><BR>
     
    	</form>
    </body>
     
     
    <jsp:useBean id="jdbc" class="web.Lien"/>
     
    <%
     
            String refpro = request.getParameter("refpro");
            String libelle = request.getParameter("libelle");
            String prixint = request.getParameter("prix");
            String qstockint =request.getParameter("qstock");
            
            String insertion = jdbc.insertion("refpro","libelle","prix","qstock");          
                    
    %>
     
    </html>

    Code java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    package web;
     
    import java.sql.*;
     
     
     
    public class Lien{
        private Connection connexion;
        private Statement requète;
        private boolean correct;
        public Lien(){
            try{
                initierConnexion(); 
            }catch(ClassNotFoundException e) {System.err.println("Erreur de chargement du pilote : " + e);}
            catch(SQLException e) {System.err.println("Connexion impossible : " + e);}
            catch(Exception e) {System.err.println("Erreur : " + e);}
        }
        private void initierConnexion() throws Exception{
            Class.forName("org.postgresql.Driver");
            connexion = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","postgres","postgres");
            System.out.println("ouverture de la connexion à la base");
            requète = connexion.createStatement();
            correct = true;
        }
        public boolean isCorrect(){
            return correct;
        }
     
     
        public String insertion(String refpro,String libelle, double prix, int qstock){
            if(!correct)
                return null;
     
            String sql ="insert into produit (refpro,libelle,prix,qstock) values ('"+refpro+"','"+libelle+"',"+prix+","+qstock+")"; 
                    ResultSet réponse = null;
            String nom = null;
            try{
                réponse = requète.executeQuery(sql);
                if(réponse.next())
                    nom = réponse.getString("qstock");
            }catch (SQLException e) {System.err.println("Erreur SQL : " + e.getMessage());}
            catch(Exception e) {System.err.println("Erreur : " + e);}
            return nom;
        }  
     
        public static void main (String []args){
        Lien lientest = new Lien ();
     
        lientest.insertion("NE555", "puce", 9.55 , 310);
     
        }
        }
    J'ai le message d'erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP: 
     
    Une erreur s'est produite à la ligne: 33 dans le fichier jsp: /test.jsp
    The method insertion(String, String, double, int) in the type Lien is not applicable for the arguments (String, String, String, String)
    30: 	
    31: 	
    32: 
    33: 	String insertion = jdbc.insertion("refpro","libelle","prix","qstock");		
    34: 	
    35: 
    36:         
     
     
    Stacktrace:
    	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:443)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
    	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:341)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

    Comme exprimé avant, je ne sais pas si ma méthode correcte, de plus je dois réussir a transformer mes string en double et int mais je ne sais pas comment avec le jsp.

    D'avance merci

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu as les méthodes Double#parseDouble et Integer#parseInt.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Tu as les méthodes Double#parseDouble et Integer#parseInt.
    merci de ta réponse, mais ces méthodes c'est pour le code java, comment je fais le lien avec jsp ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Tu dois faire l'adaptation au niveau de ta page jsp.

    Tu utilises 4 string alors que ta méthode insertion s'attend à avoir 2 string, un double et un int en paramètre d'où l'erreur.

    Tu dois donc utiliser le type double et int pour les deux variable suivantes et tu dois également convertir les valeurs reçues avec les deux méthodes précédemment citées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	String prixint = request.getParameter("prix");
    	String qstockint =request.getParameter("qstock");

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Merci de votre réponse, ayant un problème avec ma session ubuntu je n'ai pas encore su testé votre.
    Si j'effectue ces 2lignes de commande en plus, je pourrais ajouté des choses dans ma BD ?

    Encore merci pour votre aide

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il ne faut pas les ajouter, tu dois remplacer le type de ces deux variables par les types que tu passes en argument à ta méthode insertion à savoir Double et Int
    Dernière modification par Invité ; 29/12/2010 à 14h27.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    Bonjour, j'ai modifié mon code jsp
    je crois bien avoir effectué mes changements de variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <html>
     
    	<head><title>
    		insertion dans la base
    	</title></head>
     
    <body>
    	<form method="POST">
    	reference :	<input type=text name="refpro"><BR>
     
    	libelle :	<input type=text name="libelle"><BR>
    	prix :		<input type=text name="prix"><BR>
    	qstock :	<input type=text name="qstock"><BR>
    			<input type="submit" value="insert"><BR>
     
    	</form>
    </body>
     
     
    <jsp:useBean id="jdbc" class="web.Lien"/>
     
    <%
     
            String refpro = request.getParameter("refpro");
            String libelle = request.getParameter("libelle");
            String prixdouble = request.getParameter("prix");
            String qstockint  = request.getParameter("qstock");
            
            int qstock = Integer.parseInt(qstockint);
            double prix  = Double.parseDouble(prixdouble);
     
     
     
            
            String insertion = jdbc.insertion (refpro,libelle,prix,qstock);         
                    
    %>
     
    </html>
    il me retourne une autre erreur mnt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    ype Rapport d''exception
     
    message
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception
     
    org.apache.jasper.JasperException: An exception occurred processing JSP page /ajout.jsp at line 29
     
    26: 	String prixdouble = request.getParameter("prix");
    27: 	String qstockint  = request.getParameter("qstock");
    28: 	
    29: 	int qstock = Integer.parseInt(qstockint);
    30: 	double prix  = Double.parseDouble(prixdouble);
    31: 
    32: 
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:550)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:454)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     
    cause mère
     
    java.lang.NumberFormatException: null
    	java.lang.Integer.parseInt(Integer.java:417)
    	java.lang.Integer.parseInt(Integer.java:499)
    	org.apache.jsp.ajout_jsp._jspService(ajout_jsp.java:88)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

    Merci pour votre aide

  8. #8
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Javadoc !
    En lisant la description de "parseInt", tu verras qu'il faut catcher l'exception java.lang.NumberFormatException pour le cas ou la chaîne de caractères ne représente pas un nombre.
    Dans ton cas, la chaîne est null donc ne représente pas un nombre donc le parsing génère une exception.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 0
    Points
    0
    Par défaut
    J'ai réussi a faire la transformation en int mais maintenant j'ai un problème avec le double


    JSP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <html>
     
    	<head><title>
    		insertion dans la base
    	</title></head>
     
    <body>
    	<form method="POST">
    	reference :	<input type=text name="refpro"><BR>
     
    	libelle :	<input type=text name="libelle"><BR>
    	prix :		<input type=text name="prix"><BR>
    	qstock :	<input type=text name="qstock"><BR>
    			<input type="submit" value="insert"><BR>
     
    	</form>
    </body>
     
     
    <jsp:useBean id="jdbc" class="web.Lien"/>
     
    <%
            String prix =null;
            String qstock=null;
            
            String refpro = request.getParameter("refpro");
            String libelle = request.getParameter("libelle");
            int qstockint = 0 ;
            
            try{ 
            double prixdouble = Double.parseDouble(request.getParameter("prix"));
            qstockint  = Integer.parseInt(request.getParameter("qstock"));
            
            } catch (NumberFormatException nfe) {};
     
     
            
            String insertion = jdbc.insertion ("refpro","libelle",prixdouble,qstockint);            
                    
    %>
     
    </html>

    erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP: 
     
    Une erreur s'est produite à la ligne: 38 dans le fichier jsp: /ajout.jsp
    prixdouble cannot be resolved to a variable
    35: 
    36: 
    37: 	
    38: 	String sql = jdbc.insertion ("refpro","libelle",prixdouble,qstockint);		
    39:  		
    40: %>
    41:  
     
     
    Stacktrace:
    	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
    	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    	org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:443)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:367)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
    	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:341)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:332)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    meme si je mets "prixdouble" entre "" il me met l'erreur que j'ai String, String, String, int

    Le problème est deja a moitié réglé Merci

  10. #10
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    la variable "prixdouble" est déclarée dans un sous bloc et est invisible en dehors de ce bloc.
    Tu dois déclarer ta variable avant le bloc "try".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. problème insertion dans nouvelle table
    Par MAMANHOU dans le forum VBA Access
    Réponses: 6
    Dernier message: 12/12/2012, 09h59
  2. problème insertion dans deux tables liées
    Par ryassinne dans le forum MySQL
    Réponses: 6
    Dernier message: 07/05/2010, 16h58
  3. [MySQL] Problème insertion dans une table
    Par Timbermatt dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/05/2009, 11h34
  4. Problème d'insertion dans une table MYSQL
    Par greg69 dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/10/2005, 11h34
  5. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo