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

Java EE Discussion :

Problème projet Java


Sujet :

Java EE

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Problème projet Java
    Bonjour.

    Je fais actuellement un projet en Java. J'utilise Eclipse et Tomcat pour Java, et MAMP pour ma base de données.

    Je cherche à entrer les données d'un client depuis Eclipse (numéro, nom, prénom, age, identifiant, mot de passe) dans la base de données que j'ai créée sur MAMP.

    Voici les codes.

    Controleur
    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
    package controleur;
     
    import modele.Modele;
    import java.util.ArrayList;
     
    public class Controleur 
    {
    	public static void insertClient(ClientD unClient)
    	{
    		//appel du Modele
    		//on peut realiser des controles sur les donnees avant insertion
    		Modele.insertClient(unClient);
    	}
     
    	public static void updateClient(ClientD unClient)
    	{
    		Modele.updateClient(unClient);
    	}
     
    	public static ArrayList<ClientD> selectAllClients()
    	{
    		return Modele.selectAllClients();
     
    	}
     
    	public static void deleteClient(int numClient)
    	{
    		Modele.deleteClient(numClient);
    	}
     
     
     
     
    }
    Modele
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    package modele;
     
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import controleur.ClientD;
     
    public class Modele {
    private static Bdd uneBdd = new Bdd("localhost:8889", "resa-disney", "root", "root");
     
     
    	public static void insertClient(ClientD unClient)
    	{
    		String requete = "insert into client values(null, '" + unClient.getNumClient() + "','" + unClient.getNomClient() + "','" 
    				+ unClient.getPrenomClient() + "','" + unClient.getAgeClient() + "','" 
    				+ unClient.getIdClient() + "','" + unClient.getMdpClient() + "';)";
     
    		try
    		{
    			uneBdd.seConnecter();
    			Statement unStat = uneBdd.getMaConnexion().createStatement();
    			unStat.execute(requete);
    			uneBdd.seDeConnecter();
    		}
     
    		catch(SQLException exp)
    		{
    			exp.printStackTrace();
    			//System.out.println("Erreur d'execution : " + requete);
    		}
     
        }
     
        public static void deleteClient(int numClient)
    	{
    		String requete = "delete from client where numClient =" + numClient + ";";
     
    		executer(requete);
     
    	}
     
    	public static void updateClient(ClientD unClient)
    	{
    		String requete = "update client set age = '" + unClient.getAgeClient() 
    		+ "'where numClient = '" + unClient.getNumClient() + "';";
     
    		executer(requete);
     
    	}
     
    	public static void executer (String requete)
    	{
    		try
    		{
    			uneBdd.seConnecter();
    			Statement unStat = uneBdd.getMaConnexion().createStatement();
    			unStat.execute(requete);
    			uneBdd.seDeConnecter();
    		}
     
    		catch(SQLException exp)
    		{
    			System.out.println("Erreur d'execution : " + requete);
    		}
    	}
    	public static ArrayList<ClientD> selectAllClients()
    	{
    		ArrayList<ClientD> lesClients = new ArrayList<ClientD>();
    		String requete = "select * from client ";
     
     
    		try
    		{
    			uneBdd.seConnecter();
    			Statement unStat = uneBdd.getMaConnexion().createStatement();
    			ResultSet desRes = unStat.executeQuery(requete);
    			while(desRes.next())
    			{
    				System.out.println(desRes.getInt("numClient") +
    						desRes.getString("nomClient") + 
    						desRes.getString("prenomClient") +
    						desRes.getInt("ageClient") +
    						desRes.getString("identifiant") +
    						desRes.getString("motdepasse"));
    				ClientD unClient = new ClientD (
    						desRes.getInt("numClient"),
    						desRes.getString("nomClient"), 
    						desRes.getString("prenomClient"),
    						desRes.getInt("ageClient"),
    						desRes.getString("identifiant"),
    						desRes.getString("motdepasse")
    						);
     
    				lesClients.add(unClient);
    			}
    			uneBdd.seDeConnecter();
    		}
    		catch(SQLException exp)
    		{
    			exp.printStackTrace();
    		}
    		return lesClients;
    	}
     
    }
    Fichier Client
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    package controleur;
     
     
    public class ClientD
    {
    private int numClient, ageClient;
    private String nomClient, prenomClient, identifiant, motdepasse;
     
    public ClientD()
    {
    	this.nomClient = this.prenomClient = this.identifiant = this.motdepasse = "";
    	this.numClient = 1;
    	this.ageClient = 1;
    }
     
     
     
    public ClientD(int numClient, String nomClient, String prenomClient, int ageClient, String identifiant, String motdepasse) 
    {
    	super();
    	this.numClient = numClient;
    	this.nomClient = nomClient;
    	this.prenomClient = prenomClient;
    	this.ageClient = ageClient;
    	this.identifiant = identifiant;
    	this.motdepasse = motdepasse;
    }
     
     
     
    public String consulter()
    {
    	return "Nom : " + this.nomClient + "<br/> Prénom : " + this.prenomClient
    			+ "<br/> Numéro : " + this.numClient + "<br/> Age : "
    			+ this.ageClient + "Identifiant : " + this.identifiant + "<br/> Mot de passe : " + this.motdepasse;
    }
     
     
    public String getNomClient()
    {
    	return nomClient;
    }
     
    public void setNomClient(String nom)
    {
    	this.nomClient = nom;
    }
     
    public int getNumClient()
    {
    	return numClient;
    }
     
    public void setNumClient(int numero)
    {
    	this.numClient = numero;
    }
     
    public String getPrenomClient()
    {
    	return prenomClient;
    }
     
    public void setPrenomClient(String prenom)
    {
    	this.prenomClient = prenom;
    }
     
    public int getAgeClient()
    {
    	return ageClient;
    }
     
    public void setAgeClient(int age)
    {
    	this.ageClient = age;
    }
     
    public String getIdClient()
    {
    	return identifiant;
    }
     
    public void setIdClient(String id)
    {
    	this.identifiant = id;
    }
     
    public String getMdpClient()
    {
    	return motdepasse;
    }
     
    public void setMdpClient(String mdp)
    {
    	this.motdepasse = mdp;
    }
     
    }
    Fichier index.jsp
    Code jsp : 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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <%@ page import ="controleur.*" %>
    <%@ page import ="java.util.ArrayList" %>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
     
     
    	<h1>Gestion d'un client</h1>
    	<br/>
    	<form method="post" action="">
    	Nom : <input type="text" name="nom"><br/>
    	  Prénom : <input type="text" name="prenom"><br/>
    	Numéro : <input type="text" name="numero"><br/>
    	Age :<input type="text" name="age">
    	Identifiant : <input type="text" name="identifiant"><br/>
    	Mot de passe : <input type="text" name="motdepasse"><br/>
    	<input type="submit" name="ouvrir" value ="ouvrir">
     
     
    	</form>
     
     
     
     
     
    <%!
            ClientD unClient;
    %>
     
    	<%
                            //partie exécution
                            ArrayList<ClientD> lesClients = Controleur.selectAllClients();
                            out.print("<table border =1> <tr><td> Numéro</td><td> Nom </td><td> Prénom </td><td> Age </td> <td> Identifiant </td><td> Mot de passe </td> </tr>");
                            for(ClientD unClient : lesClients)
                            {
                                    out.print("<tr><td>" + unClient.getNumClient() + "</td><td>" + unClient.getNomClient()
                                    + "</td><td>" + unClient.getPrenomClient() + "</td><td>" + unClient.getAgeClient()
                                    + "</td><td>" + unClient.getIdClient()
                                    + "</td><td>" + unClient.getMdpClient()
                                    + "</td><td><a href='index.jsp?numero="+ unClient.getNumClient() +"'> X</a></td><tr>");
                            }
                            out.print("</table>");
                            
                            if(request.getParameter("numero") != null)
                            {
                                    int numClient = Integer.parseInt(request.getParameter("numero"));
                                    Controleur.deleteClient(numClient);
                            }
                            
                            if(request.getParameter("ouvrir") != null)
                            {
                                    int numClient = Integer.parseInt(request.getParameter("numero"));
                                    String nomClient = request.getParameter("nom");
                                    String prenomClient = request.getParameter("prenom");
                                    int ageClient = Integer.parseInt(request.getParameter("age"));
                                    String identifiant = request.getParameter("identifiant");
                                    String motdepasse = request.getParameter("motdepasse");
                                    
                                    unClient = new controleur.ClientD (numClient, nomClient, prenomClient, ageClient, identifiant, motdepasse);
                                    //insertion de ce compte dans la base de données
                                    Controleur.insertClient(unClient);
                                    out.println("Insertion dans la base de données réussie");
                                    /******************************************************/
                                    out.print("<br/> Votre client : ");
                                    out.print(unClient.consulter());
                                    
                            }
                            
                            //if(request.getParameter("modifier") != null)
                            //{                                             
                            //      out.print("<br/> New age : " + unClient.getAgeClient());
                            //      out.print("<br/> New num : " + unClient.getNumClient());
                            //      Controleur.updateClient(unClient);
                                    
                            //}
                            
                            
                    %>
     
    <%@ include file="footer.jsp" %>
    </body>
    </html>

    J'espère que ce sera lisible.

    La compilation a bien eu lieu (non sans mal) mais la console m'affiche "Erreur d'exécution : insert into client values...".

    Comment puis-je arranger cela, s'il vous plaît ?

    Merci.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il doit y avoir un peu plus d'information dans le message d'erreur. Je suppose que le problème vient de l'age qui doit être typé en nombre dans la table mais que tu essayes d'insérer en chaîne de caractères, puisque tu as mis des quotes autour de la valeur.

    Tu devrais utiliser des PreparedStatement plutôt que de procéder par concaténation et d'utiliser de simple Statement : la gestion des quotes est automatique et tu manipules données par leur type Java. Tu n'as pas besoin de te préoccuper des quotes et en particulier de l'échappement (parce que s'il y a des quotes dans les données que tu insères, ça va planter aussi avec une simple concaténation). Et ça évite en plus l'injection SQL.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String requete = "insert into client values(null,
    La colonne correspondante à la valeur null accepte-t-elle un null?
    Prend l'habitude de mettre aussi les noms de colonnes (client (id_client, num ....)).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "','" + unClient.getAgeClient() + "','"
    L'age doit-être une valeur calculé, c'est la date de naissance que tu dois sauvegarder.

    Citation Envoyé par joel.drigo
    Je suppose que le problème vient de l'age qui doit être typé en nombre dans la table mais que tu essayes d'insérer en chaîne de caractères, puisque tu as mis des quotes autour de la valeur.
    Seul les entiers peuvent ne pas être dans des quotes dans une requêtes, mais on peut aussi les mettre entre des quotes.

    A+.

Discussions similaires

  1. [WD17] Problème projet Java sous Windows et Linux
    Par wojc01 dans le forum WinDev
    Réponses: 2
    Dernier message: 13/03/2013, 13h50
  2. Problème d'ouverture d'un projet Java sous NetBeans
    Par dearraed dans le forum NetBeans
    Réponses: 4
    Dernier message: 23/09/2012, 12h08
  3. Problème d'importation Projet Java
    Par Ma29200 dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 22/06/2012, 14h15
  4. Problème création/ouverture de projet Java
    Par ifisch dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 14/11/2010, 09h21
  5. Comment eviter de dedoubler projet c++ et projet java/applet
    Par buzzz dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 13/10/2004, 13h02

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