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

Struts 2 Java Discussion :

Ajout qui échoue (DAO & Struts)


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut Ajout qui échoue (DAO & Struts)
    Bonjour,

    Je suis en train de faire une application de gestion des clients, j'utilise Struts et DAO (Data Access Object). Le problème est que j'arrive pas à réussir le test d'ajout d'un client dans la base de données qui s'appelle betaboutique.
    SVP aidez moi parce que je suis totalement épuisé.
    Voila l'arboressence de mon projet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ===>src
     
    =======beans
    ++++++++++Client.java
     
    =======modeles
    ++++++++++DAO.java
    ++++++++++DAOBASE.java
    ++++++++++ModeleClientDAO.java
    ++++++++++TestModeleClientDAO.java
     
    =======outils
    ++++++++++ApplicationListener.java
    ++++++++++GestionBaseDeDonnees.java
    DAO.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    package modeles;
     
    import java.sql.Connection;
     
    public interface DAO {
    public Connection getConnection();
    }
    DAOBASE.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
    package modeles;
     
    import java.sql.Connection;
    import java.sql.SQLException;
    import javax.servlet.ServletContext;
    import javax.sql.DataSource;
    import org.apache.struts2.ServletActionContext;
     
    public class DAOBase   implements DAO{
    DataSource dataSource=null;
     
    	// Récupérer une connexion
    	public Connection getConnection() 
    	{
    		ServletContext servletContext=ServletActionContext.getServletContext();
    		if(this.dataSource==null)
    		{
    			dataSource=(DataSource)servletContext.getAttribute("dataSource");
    		}
    		Connection connection=null;
    		if(dataSource!=null)
    		{
    			try
    			{
    				connection=dataSource.getConnection();
    			}
    			catch(SQLException e)
    			{
    				System.out.println(e);
    			}
    		}
     
    		// retourner la connexion
    		return connection;
    	}
     
     
    	// Positionner une dataSource
    	public void setConnection(DataSource dataSource)
    	{
    		this.dataSource=dataSource;
    	}
    }
    ModeleClientDAO.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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    package modeles;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
     
    import outils.GestionBaseDeDonnees;
     
    import beans.Client;
     
    public class ModeleClientDAO extends DAOBase {
    Connection connexion=null;
    ResultSet resultat=null;
     
    public ModeleClientDAO() {
    }
     
    public int ajouterClient(Client client){
    	PreparedStatement requete=null;
    	String requeteString=null;
    	int codeErreur=0;
    	try {
    		connexion=getConnection();
    		requeteString="insert into client (nomclient,prenomclient,emailclient,adresseclient,codepostalclient,identifiantclient,motdepasseclient,telephoneclient,villeclient,paysclient) VALUES (?,?,?,?,?,?,?,?,?,?)";
    		requete=connexion.prepareStatement(requeteString);
    		requete.setString(1, (String)client.getNom());
    		requete.setString(2,(String)client.getPrenom());
    		requete.setString(3, (String)client.getMail());
    		requete.setString(4, (String)client.getAdresse());
    		requete.setString(5, (String)client.getCodePostal());
    		requete.setString(6, (String)client.getIdentifiant());
    		requete.setString(7, (String)client.getMotDePasse());
    		requete.setString(8, (String)client.getTelephone());
    		requete.setString(9, (String)client.getVille());
    		requete.setString(10, (String)client.getPays());
    		client=null;
    		codeErreur=requete.executeUpdate();
    	} catch (Exception e) {
    		codeErreur=0;
    		System.out.println("Erreur dans la requete dans la classe ModeleClient.java fonction creerClient");
    	}
    	finally{
    		try {
    			if(resultat!=null){
    				GestionBaseDeDonnees.closeResulset(resultat);
    			}
    			if(requete!=null){
    				GestionBaseDeDonnees.closeRequest(requete);
    			}
    			if(connexion!=null){
    				GestionBaseDeDonnees.closeConnection(connexion);
    			}
    		} catch (Exception e) {
    			System.out.println("Erreur lors de la fermeture de la connexion avec la base do données dans la classe ModeleClient fonction creerClient");
    		}
    	}
     
    	return codeErreur;
     
    }
    }
    TestModeleClientDAO.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
    package modeles;
     
    import beans.Client;
     
    public class TestModeleClientDAO {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		ModeleClientDAO clt=new ModeleClientDAO();
    		Client c=new Client();
    		c.setNom("FSFDSDFS");
    		c.setPrenom("ZDDDD");
    		c.setMail("aaaa@yahoo.fr");
    		c.setAdresse("FRDS");
    		c.setCodePostal("20A50");
    		c.setIdentifiant("123");
    		c.setMotDePasse("aqwzsx");
    		c.setTelephone("123333");
    		c.setVille("AAA");
    		c.setPays("AZERT");
    		clt.ajouterClient(c);
    		System.out.println("Client bien ajouter");
     
    	}
     
    }
    ApplicationListener.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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    package outils;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.sql.DataSource;
     
    public class ApplicationListener {
    Context context=null;
     
    	//fonction appelée lors de la création du lanceur
    	public void contextInitialized(ServletContextEvent servletContextEvent) 
    	{
    		ServletContext servletContext=servletContextEvent.getServletContext();
    		String dataSourceJNDIName=servletContext.getInitParameter("dataSourceJNDIName");
    		String nomProjet=servletContext.getInitParameter("nomProjet");
     
    		try
    		{
    			context=new InitialContext();
    			DataSource dataSource=(DataSource)context.lookup(dataSourceJNDIName);
    			if(dataSource==null)
    			{
    				System.out.println("Il n'y a pas de DataSource pour le projet : "+nomProjet);
    			}
    			else
    			{
    				System.out.println("DataSource : "+nomProjet+" charge !");
    			}
    			servletContext.setAttribute("dataSource", dataSource);
    		}
    		catch(NamingException e)
    		{
    			throw new RuntimeException();
    		}
    		finally
    		{
    			try
    			{
    				//fermer le context
    				if(context!=null)
    				{
    					context.close();
    				}
    			}
    			catch(Exception e)
    			{
    				System.out.println("Erreur lors de initCtx !");
    			}
    		}
    	}
     
     
    	//fonction appelée lors de la destruction du lanceur
    	public void contextDestroyed(ServletContextEvent servletContextEvent)
    	{
    		try
    		{
    			//fermer le context
    			if(context!=null)
    			{
    				context.close();
    			}
    		}
    		catch(Exception e)
    		{
    			System.out.println("Erreur lors de initCtx !");
    		}
    	}
    }
    GestionBaseDeDonnees.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
    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
    package outils;
     
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
     
    public class GestionBaseDeDonnees {
    	public static void closeResulset(ResultSet resultat)
    	{
    		if(resultat != null)
    		{
    			try
    			{
    				resultat.close();
    			}
     
    			catch(Exception e)
    			{
    				System.out.println("Erreur lors de la fermerture d'une connexion d'un resultset");
    			}
    		}
    	}
     
    	/* Fermeture d'une requête */
    	public static void closeRequest(Statement requete)
    	{
    		if(requete!=null)
    		{
    			try
    			{
    				requete.close();
    			}
    			catch(Exception e)
    			{
    				System.out.println("Erreur lors de la fermerture d'une requête");
    			}
    		}
    	}
     
    	/* Fermeture d'une connexion */
    	public static void closeConnection(Connection connexion)
    	{
    		if(connexion!=null)
    		{
    			try
    			{
    				connexion.close();
    			}
     
    			catch(Exception e)
    			{
    				System.out.println("Erreur lors de la fermerture d'une connexion");
    			}
    		}
    	}
     
    	/* Valide la transaction */
    	public static void commit(Connection connexion)
    	{
    		if(connexion!=null)
    		{
    			try
    			{
    				connexion.commit();
    			}
    			catch(Exception e)
    			{
    				System.out.println("Erreur lors d'un comit");
    			}
    		}
    	}
     
    	/* Annulation de la transaction */
    	public static void rollback(Connection connexion)
    	{
    		if(connexion!=null)
    		{
    			try
    			{
    				connexion.rollback();
    			}
    			catch(Exception e)
    			{
    				System.out.println("Erreur lors d'un rollback");
    			}
    		}
    	}
    }
    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de DarkMolo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Juillet 2006
    Messages : 207
    Par défaut
    Salut,

    Pardon pour ne pas avoir deviné tout seul , qu'est ce qui te bloque, tu peux nous passer l'erreur que tu as ?

  3. #3
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    L'erreur que j'ai dans le console d'eclipse:
    Erreur dans la requete dans la classe ModeleClient.java fonction creerClient

  4. #4
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Apparament j'ai un prolème de connexion à la base de données surtout la partie de déclaration du pool dans le fichier de configuration de projet.

    J'arrive pas à trouver la solution.

  5. #5
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Bonjour,

    Je suis toujours bloqué,

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

    Ton erreur est catchée à ce niveau dans ta classe modeleDaoClient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	} catch (Exception e) {
    		codeErreur=0;
    		System.out.println("Erreur dans la requete dans la classe ModeleClient.java fonction creerClient");
    Il serait plus judicieux d'afficher la stacktrace dans tes blocs catch pour essayer de comprendre ce qu'il se passe.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	} catch (Exception e) {
    		codeErreur=0;
    		System.out.println("Erreur dans la requete dans la classe ModeleClient.java fonction creerClient");
    e.printStackTrace();

Discussions similaires

  1. [SQL-Server] sql server express + php connexion qui échoue
    Par if_zen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/07/2006, 22h41
  2. [VB6] Upload fichier xls qui échoue (missing css file)
    Par pom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/06/2006, 14h10
  3. Réponses: 4
    Dernier message: 05/06/2006, 13h49
  4. [C#]Authentification qui échoue : a chaque fois "Login inco
    Par The_revival dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/04/2006, 22h36
  5. Réponses: 8
    Dernier message: 07/12/2005, 14h44

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