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 :

n'affiche pas ma table


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut n'affiche pas ma table
    Bonjour,


    Ca fait plusieurs heures que j'essaye de régler le problème par moi même mais rien n'y fait. C'est pour cette raison que je me tourne vers vous pour m'aider ou bien de me mettre sur la voie pour voir l'erreur (surement flagrante) que je ne vois pas.

    Dans mon programme j'essaye d'afficher les enregistrements de ma table sans succès.

    Ma classe DemandeDaoImpl:

    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 com.company;
     
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
     
    public class DemandeDaoImpl implements DemandeDao {
        private static DemandeDaoImpl instance;
        public static DemandeDaoImpl getInstance(){
            if(instance == null)
                instance = new DemandeDaoImpl();
            return instance;
     
     
        }
     
     
     
     
        @Override
        public List<Demande> lister() {
            List<Demande> demand = new ArrayList<Demande>();
            Connection connexion = null;
            Statement statement = null;
            ResultSet resultat = null;
     
            try {
                connexion = MySqlDaoFactory.getInstance().getConnection();
                statement = connexion.createStatement();
                resultat = statement.executeQuery("SELECT * FROM demande");
     
                while (resultat.next()) {
                    int id = resultat.getInt("id");
                    String user = resultat.getString("user");
                    String password = resultat.getString("password");
     
     
                    Demande demande = new Demande();
                    demande.setId(id);
                    demande.setUser(user);
                    demande.setPassword(password);
     
                    demand.add(demande);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return demand;
        }
     
    }
    Ma classe Demande
    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
    import java.util.List;
     
    public class Demande {
        private int id;
        private String user;
        private String password;
     
        public int getId(int i) {
            return id;
        }
     
        public String getUser() {
            return user;
        }
     
        public String getPassword() {
            return password;
        }
     
        public void setId(int id) {
            this.id = id;
        }
     
        public void setUser(String user) {
            this.user = user;
        }
     
        public void setPassword(String password) {
            this.password = password;
        }
     
        public Demande(int id, String user, String password) {
            this.id = id;
            this.user = user;
            this.password = password;
        }
     
        public Demande() {
     
        }
     
        public List<Demande> lister() {
     
     
            AbstractDAOfactory factory = AbstractDAOfactory.getFactory();
            DemandeDao demandedao = factory.createD();
            return demandedao.lister();
     
     
        }
     
    }
    Ma classe Abstract
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public abstract class AbstractDAOfactory {
     
        private static AbstractDAOfactory factory;
     
        public static AbstractDAOfactory getFactory() {
            return factory;
        }
     
        public static void setFactory(AbstractDAOfactory factory) {
            AbstractDAOfactory.factory = factory;
        }
     
        public abstract DemandeDao createD();
    }
    Ma classe MysqlDaofactory
    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
    import java.sql.*;
     
    public class MySqlDaoFactory extends AbstractDAOfactory {
     
            private static MySqlDaoFactory instance;
     
            public static Connection getConnection() {
                String url = "jdbc:mysql://localhost:3306/garage";
                String user = "root";
                String password = "";
                Connection c = null;
     
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                    c = DriverManager.getConnection(url, user, password);
     
                } catch (ClassNotFoundException | SQLException cndfe) {
                    System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$:" + cndfe.getMessage());
                }
                return c;
            }
     
            public static void closeResultSet(ResultSet rs) {
                try {
                    if (rs != null) {
                        rs.close();
                    }
                } catch (SQLException e) {
                }
     
            }
     
            public static void closeStatement(Statement st) {
                try {
                    if (st != null) {
                        st.close();
                    }
                } catch (SQLException e) {
                }
     
            }
     
            public static void closeConnection(Connection c) {
                try {
                    if (c != null) {
                        c.close();
                    }
                } catch (SQLException e) {
                }
     
            }
     
            public static MySqlDaoFactory getInstance() {
                if (instance == null) {
                    instance = new MySqlDaoFactory();
                }
                return instance;
            }
     
    //cette classe extends de ma classe abstraite et qui fait appel a la methode
     
     
            @Override
            public DemandeDaoImpl createD() {
     
                return DemandeDaoImpl.getInstance();
            }
     
        }
    Mon interface
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import java.util.List;
     
    public interface DemandeDao {
        List<Demande> lister();
    }
    Ma classe main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static void main(String[] args) {
    		AbstractDAOfactory.setFactory(MySqlDaoFactory.getInstance());
    		Demande d = new Demande();
    		System.out.println(d.lister());
    	    }
    	}
    Et ma table:
    Code SQL : 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
    -- phpMyAdmin SQL Dump
    -- version 4.7.9
    -- https://www.phpmyadmin.net/
    --
    -- Hôte : 127.0.0.1
    -- Généré le :  ven. 01 mai 2020 à 18:07
    -- Version du serveur :  10.1.31-MariaDB
    -- Version de PHP :  7.2.3
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
     
    --
    -- Base de données :  `garage`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `demande`
    --
     
    CREATE TABLE `demande` (
      `id` int(11) NOT NULL,
      `user` varchar(250) NOT NULL,
      `password` varchar(250) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Déchargement des données de la table `demande`
    --
     
    INSERT INTO `demande` (`id`, `user`, `password`) VALUES
    (1, 'user', 'user'),
    (2, 'test', 'test'),
    (3, 'test', 'test'),
    (4, 'tettt', 'tttt');
     
     
    --
    -- Index pour les tables déchargées
    --
     
    --
    -- Index pour la table `demande`
    --
    ALTER TABLE `demande`
      ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT pour les tables déchargées
    --
     
    --
    -- AUTO_INCREMENT pour la table `demande`
    --
    ALTER TABLE `demande`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
    COMMIT;
     
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

    Voila le résultat qui m'affiche:
    [test4.Demande@4d1b0d2a, test4.Demande@954b04f, test4.Demande@149494d8, test4.Demande@710726a3]
    Désolé pour la longueur du truc.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Le résultat est tout à fait normal, tu t'attendais à quoi au juste ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci de pour ta réponse
    Je voulais juste qui m'affiche ma table autrement, en forme de tableau.
    Et quand j'essaye d'afficher seulement 1 élément il m'affiche null.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Quand tu fais un System.out.println(list), la méthode va boucler sur les éléments de ta liste et utiliser la méthode toString() de l'objet de la liste.
    Ton résultat représente la valeur renvoyée par la méthode toString() par défaut.
    Tu peux redéfinir cette méthode dans la classe Demande, par exemple comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        @Override
        public String toString()
        {
            return "Demande [id=" + id + ", user=" + user + ", password=" + password + "]";
        }
    Ce qui produira ceci avec System.out.println(list);
    [Demande [id=1, user=user1, password=pwd1], Demande [id=2, user=user2, password=pwd2], Demande [id=3, user=user3, password=pwd3], Demande [id=4, user=user4, password=pwd4]]
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci de ton aide, cela m'a bien aidé
    Effectivement il m'affiche bien ma table donc ça fonctionne bien.
    J'aimerais savoir pourquoi elle ne s'affiche pas comme ça:
    Nom : table.png
Affichages : 78
Taille : 33,2 Ko.

    Quand je teste le même code sur inteljj il me renvoi un erreur alors que sur eclipse pas du tout, je vois pas pourquoi.
    Merci d'avance!

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Aucune idée... je n'utilise pas Intellij, je travaille exclusivement avec Eclipse.
    Il faudrait déjà dire quelle est l'erreur et voir si quelqu'un utilisant cet EDI peut t'aider.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mai 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    ok Merci

Discussions similaires

  1. Bouton Calculer n'affiche pas la table de multiplication
    Par supstoov dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 20/06/2014, 16h30
  2. Réponses: 0
    Dernier message: 18/07/2008, 12h38
  3. [table]Entete qui ne s'affiche pas
    Par bibx dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 26/04/2006, 16h36
  4. Réponses: 2
    Dernier message: 06/12/2005, 03h32
  5. Réponses: 4
    Dernier message: 07/11/2005, 15h38

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