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

JDBC Java Discussion :

Problème avec JDBC


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Problème avec JDBC
    Bonjour cher tous ,
    je veux mettre en place une application de gestion de stock de produit.
    j'ai créer trois classes. la classe produit , catégorie
    une classe IMetier.java , une classe SingletonConnection.java et la classe MetierCatalogueImpl.java.
    j'ai créer la base de données qui comporte deux tables notamment la table catégorie et la table produit.
    Mais lorsque je veux insérer les références dans les différents table java me crache dessus. Voici mes codes. Aidez moi à y remédier.

    produit.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
    package Metier;
     
    import java.io.Serializable;
     
    public class Produit implements Serializable {
    	private String refProduit;
    	private String nomProduit;
    	private double prix;
    	private int quantite;
    	private Categorie categorie;
    	public String getRefProduit() {
    		return refProduit;
    	}
    	public void setRefProduit(String refProduit) {
    		this.refProduit = refProduit;
    	}
    	public String getNomProduit() {
    		return nomProduit;
    	}
    	public void setNomProduit(String nomProduit) {
    		this.nomProduit = nomProduit;
    	}
    	public double getPrix() {
    		return prix;
    	}
    	public void setPrix(double prix) {
    		this.prix = prix;
    	}
    	public int getQuantite() {
    		return quantite;
    	}
    	public void setQuantite(int quantite) {
    		this.quantite = quantite;
    	}
    	public Categorie getCategorie() {
    		return categorie;
    	}
    	public void setCategorie(Categorie categorie) {
    		this.categorie = categorie;
    	}
    	public Produit() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	public Produit(String refProduit, String nomProduit, double prix,
    			int quantite) {
    		super();
    		this.refProduit = refProduit;
    		this.nomProduit = nomProduit;
    		this.prix = prix;
    		this.quantite = quantite;
    	}
     
    }
    categorie.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
    package Metier;
    import java.util.List;
    import java.io.Serializable;
    import java.util.ArrayList;
     
    public class Categorie implements Serializable {
    	private int idCat;
    	private String nomCat;
    	private List<Produit> produits=new ArrayList<Produit>();
    	public int getIdCat() {
    		return idCat;
    	}
    	public void setIdCat(int idCat) {
    		this.idCat = idCat;
    	}
    	public String getNomCat() {
    		return nomCat;
    	}
    	public void setNomCat(String nomCat) {
    		this.nomCat = nomCat;
    	}
    	public List<Produit> getProduits() {
    		return produits;
    	}
    	public void setProduits(List<Produit> produits) {
    		this.produits = produits;
    	}
    	public Categorie() {
    		super();
    		// TODO Auto-generated constructor stub
    	}
    	public Categorie(String nomCat) {
    		super();
    		this.nomCat = nomCat;
    	}
     
     
    }
    IMetier.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
    package Metier;
    import java.util.List;
     
     
    public interface IMetier {
    	public void addCategorie(Categorie c);
    	public void addProduit(Produit c, int idCat);
    	public List<Produit> getproduitsParMC(String mc);
    	public List<Produit> getproduitsParMC(int idCat);
    	public List<Categorie> getAllCategories();
    	public Categorie getCategorie(int idCat);
     
     
    }
    SingletonConnection.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
    package Metier;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
     
    public class SingletonConnection {
    	private static Connection connection;
    	static{
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
    			//Creation de la connection
    			connection=DriverManager.getConnection("jdbc:mysql://localhost:3306/DB_catalogue","root","");
    			System.out.println("Création d'une connection");
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	public static Connection getConnection(){
    		return connection;
    	}
     
    }
    MetierCatalogueImpl.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 Metier;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.List;
     
     
    public class MetierCatalogueImpl implements IMetier {
     
    	@Override
    	public void addCategorie(Categorie c) {
    		Connection con = SingletonConnection.getConnection();
    		try{
    			PreparedStatement ps = con.prepareStatement("insert into categories(NOM_CAT) VALUES(?)");
    			ps.setString(1,c.getNomCat());
    			ps.executeUpdate();
    			ps.close();
    			con.close();
    		}catch (SQLException e){
    			e.printStackTrace();
    		}
     
     
     
    	}
     
    	@Override
    	public void addProduit(Produit c, int idCat) {
    		Connection con = SingletonConnection.getConnection();
    		try{
    			PreparedStatement ps = con.prepareStatement("insert into produits VALUES(?,?,?,?)");
    			ps.setString(1 , c.getRefProduit());
    			ps.setString(2,c.getNomProduit());
    			ps.setDouble(3 ,c.getPrix());
    			ps.setInt(4, c.getQuantite());
    			ps.executeUpdate();
    			ps.close();
    			con.close();
    		}catch (SQLException e){
    			e.printStackTrace();
    		}
     
    	}
     
    	@Override
    	public List<Produit> getproduitsParMC(String mc) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    	@Override
    	public List<Produit> getproduitsParMC(int idCat) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
    	@Override
    	public List<Categorie> getAllCategories() {
    		// TODO Auto+-generated method stub
    		return null;
    	}
     
    	@Override
    	public Categorie getCategorie(int idCat) {
    		// TODO Auto-generated method stub
    		return null;
    	}
     
     
     
    }

  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,

    Et bienvenue sur Developpez.

    Quelle est la stacktrace de l'exception ?

    Par ailleurs, ta clef primaire de produit ne serait-elle pas un "autoident" ?
    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
    Membre habitué Avatar de JQueen
    Inscrit en
    Octobre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2008
    Messages : 214
    Points : 126
    Points
    126
    Par défaut
    Au passage,

    il vaut mieux fermer les ressources (connexions, statements, resultset) dans le finally, comme ça si jamais t'as une exception , t'es sûr que tes ressources ont été correctement fermées.

    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 Metier;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.List;
     
     
    public class MetierCatalogueImpl implements IMetier {
     
    	@Override
    	public void addCategorie(Categorie c) {
    		Connection con = SingletonConnection.getConnection();
    		try{
    			PreparedStatement ps = con.prepareStatement("insert into categories(NOM_CAT) VALUES(?)");
    			ps.setString(1,c.getNomCat());
    			ps.executeUpdate();
     
    		}catch (SQLException e){
    			e.printStackTrace();
    		}finally{
                            ps.close();
    			con.close();
                    }
     
     
     
    	}
     
    	@Override
    	public void addProduit(Produit c, int idCat) {
    		Connection con = SingletonConnection.getConnection();
    		try{
    			PreparedStatement ps = con.prepareStatement("insert into produits VALUES(?,?,?,?)");
    			ps.setString(1 , c.getRefProduit());
    			ps.setString(2,c.getNomProduit());
    			ps.setDouble(3 ,c.getPrix());
    			ps.setInt(4, c.getQuantite());
    			ps.executeUpdate();
     
    		}catch (SQLException e){
    			e.printStackTrace();
    		}finally{
                            ps.close();
    			con.close();
                    }
     
    	}
     
    //suite du code

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Points : 1 825
    Points
    1 825
    Par défaut
    Citation Envoyé par JQueen Voir le message
    Au passage,

    il vaut mieux fermer les ressources (connexions, statements, resultset) dans le finally:
    try-with-resources depuis java 7:

    http://docs.oracle.com/javase/tutori...urceClose.html

  5. #5
    Membre habitué Avatar de JQueen
    Inscrit en
    Octobre 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2008
    Messages : 214
    Points : 126
    Points
    126
    Par défaut
    try-with-resources depuis java 7:
    Oui bien vu , ça diminue considérablement le nombre de lignes de code, et gère bien la fermeture des ressources.

Discussions similaires

  1. Problème avec jdbc
    Par futuring dans le forum JDBC
    Réponses: 3
    Dernier message: 17/04/2011, 20h32
  2. Réponses: 6
    Dernier message: 14/11/2006, 17h58
  3. Réponses: 5
    Dernier message: 19/08/2004, 12h11
  4. [JDBC] Problème avec les accents
    Par seawolfm dans le forum Administration
    Réponses: 2
    Dernier message: 29/01/2004, 15h56
  5. problèmes bizarres avec jdbc
    Par jaimepasteevy dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 12/12/2003, 13h00

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