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 Discussion :

JAVA : Chargement données BDD dans un JTABLE via resultSet


Sujet :

Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut JAVA : Chargement données BDD dans un JTABLE via resultSet
    Bonjour,

    Je suis entrain de développer une application de gestion de compte comme projet persos pour ma formation.

    Pour l'appli, j'ai créer une base de donnée, et je souhaiterais récupérer ces données pour les afficher, or, je n'arrive qu'à récupérer une seule ligne, et même si j'itère, la même ligne est toujours afficher.

    Je suis débutant, et je tourne en rond depuis un moment, et je suis sur que la solution est toute bêtes

    voici le code

    méthode de connexion et de lecture d'écriture

    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
    public static ArrayList<Ecriture> lectureEcriture() {
    listEcriture = new ArrayList<Ecriture>();
    	try {
    	Connection connection = DriverManager.getConnection(url, username, password);
    	String requete="select * from listEcriture";
    		Statement statement = connection.prepareStatement(requete);
    		ResultSet resultSet =  statement.executeQuery(requete);
    		Ecriture ecriture = new Ecriture(ecritureDate, ecritureLibelle, ecritureCategorie, ecritureCredit, ecritureDebit);
     
     
    		while(resultSet.next()) {
     
     
    				listEcriture = new ArrayList<Ecriture>();
    				addEcritureFinal(resultSet.getString("Date"), resultSet.getString("Libelle"), resultSet.getString("Categorie"), resultSet.getInt("Credit"), resultSet.getInt("Debit"));
     
     
    			}
    		return listEcriture;					
     
    	} catch (SQLException e1) {
    		System.out.println("Error: Unable to recover the data form listEcriture");
    		e1.printStackTrace();
     
    	}finally {
    	    if (resultset != null) {
    	        try {
    	            resultset.close();
    	        } catch (SQLException e) { /* ignored */}
    	    }
    	    if (statement != null) {
    	        try {
    	            statement.close();
    	        } catch (SQLException e) { /* ignored */}
    	    }
    	    if (connection != null) {
    	        try {
    	            connection.close();
    	        } catch (SQLException e) { /* ignored */}
    	    }
     }
    	return null;
    		}
    et la méthode simple pour ajouter une écriture dans mon ArrayList

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static void addEcriture(String ecritureDate, String ecritureLibelle, String ecritureCategorie, int ecritureCredit, int ecritureDebit) {
    		final Ecriture ecriture =   new Ecriture(ecritureDate, ecritureLibelle, ecritureCategorie, ecritureCredit, ecritureDebit);
    	listEcriture.add(ecriture) ;
     
    }
    Merci d'avance pour votre aide

  2. #2
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Par défaut
    je n'y connais rien en Java mais 5s de recherche, https://www.tutorialspoint.com/java-...d-with-example

    avec un resultSet.next() avant le while peut être ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut
    Citation Envoyé par licardentaistor Voir le message
    je n'y connais rien en Java mais 5s de recherche, https://www.tutorialspoint.com/java-...d-with-example

    avec un resultSet.next() avant le while peut être ?
    Merci de ta réponse rapide j'ai fait plein de recherche sur le resultSet et ses méthodes, mais rien à faire lol, j'ai essayé le next() avant le whiile, mais sa ne marche pas plus.

  4. #4
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Par défaut
    en regardant votre code c'est normal, vous instanciez un nouveau ArrayList à chaque tour de boucle.!!... vous écrasez les enregistrements précédents.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut
    Citation Envoyé par licardentaistor Voir le message
    en regardant votre code c'est normal, vous instanciez un nouveau ArrayList à chaque tour de boucle.!!... vous écrasez les enregistrements précédents.
    D'accord, je comprends l'erreur, je n'y avais pas du tout pensé. Merci
    Cela résout le problème du nombre de ligne affiché dans le JTable, par contre cela m'affiche toujours qu'une seule ligne de la base de donnée, qu'il répété pendant le nombre de ligne.
    Auriez-vous une idée, parce qu'avec ma méthode, nous sommes d'accord qu'il récupère une ligne de la bdd, l'enregistre dans l'objet écriture en l'affectant à chaque variable, puis l'ajoute dans l'arraylist.

    Pourquoi ne le fait-il que pour une seule ligne ? Le curseur se déplace bien à chaque ligne....Je suis perdu

  6. #6
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Par défaut
    il faudrait faire des println dans le while voir si ça bouge... et que renvoi la requête de base ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut
    Citation Envoyé par licardentaistor Voir le message
    il faudrait faire des println dans le while voir si ça bouge... et que renvoi la requête de base ?
    Avec des print, j'arrive à retourner toute ma base de données dans la console; cependant, avec cette méthode, java me met une erreur "after end of result set"; je vais regarder
    Aprés je comprends pourquoi il ne m'affiche qu'un résultat, dans la méthode addEcriture, j'instancie aussi une écriture dans il écrase comme vous m'aviez dit l'instance d'avant

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 5
    Par défaut
    J'ai reussi à resoudre mon probléme, j'ai créer des arrays pour chaque variable, cela fonctionne, cependant il ne faut pas que je touche à la liste du jtable, car je suis obligé pour le moment d'appeler la méthode de connexion,
    et le serveur me met en garde contre trop de connexion.

    Je vais essayé d'optimiser le code, je ne sais pas encore trop comment mais bon

  9. #9
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Par défaut
    tu peux mettre résolu si tu considères que c'est OK

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par DevJira38 Voir le message
    j'ai créer des arrays pour chaque variable, cela fonctionne,
    Ça fonctionne peut-être, mais c'est une mauvaise conception et ça te joue bien des mauvais tours.

    Ce n'est pas comme ça qu'il fallait résoudre le problème, d'autant plus que vu la description du problème ça n'avait forcément aucun rapport. Tu as changé plusieurs choses et à la fin ton problème était résolu, et parmi ces choses tu as fait ça alors que c'était inutile.

    Citation Envoyé par DevJira38 Voir le message
    Je vais essayé d'optimiser le code, je ne sais pas encore trop comment mais bon
    En gardant en mémoire dans un objet globalement conservé, les informations que tu as obtenues, au lieu de re-requêter ces informations à la base de données chaque fois que les méthodes qui en ont besoin sont exécutées.

    On appelle cela un cache.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/12/2017, 13h36
  2. Comment afficher les tables de la BDD dans un JTable (NetBeans)
    Par khadi8 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 28/12/2011, 13h35
  3. Réponses: 9
    Dernier message: 13/12/2009, 13h28
  4. problème pour l'affichage bdd dans un JTable
    Par ciolvic dans le forum Débuter
    Réponses: 1
    Dernier message: 29/04/2009, 14h14
  5. [Conception] Afficher les données (BDD) dans un tableau en PHP
    Par ox@na dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/09/2006, 15h24

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