Partage
  • Partager sur Facebook
  • Partager sur Twitter

Entrer les données d'une requete dans un objet

    14 août 2017 à 12:17:12

    Bonjour à tous, je suis en train de créer un programme qui va me rechercher les auteurs d'un livre dans ma base de données pour les afficher. Avant de faire cela j'ai décidé de m'entrainer mais je bloque.

    J'ai une BDD qui ne comporte qu'un id_auteur et un nom_auteur, je lui demande de me faire la requête d'aller chercher l'auteur que j'aurai défini et si il y a doublon de m'afficher les id correspondants. Alors je sais que c'est parce que je n'ai pas bouclé au niveau de l'écriture mais je ne sais même pas si il y a bien plusieurs données à afficher. Trêve de bavardages je vous montre le code.

    Cela est mon objet

    public Auteur(int id_auteur, String nom_auteur) {
    		this.id_auteur = id_auteur;
    		this.nom_auteur = nom_auteur;
    	}

    Et maintenant voici ma fonction

    	public Auteur FindByA(String str) {
    		Auteur auteur = new Auteur();
    		
    		try {
    			ResultSet result = this.connect.createStatement(
    					ResultSet.TYPE_SCROLL_INSENSITIVE,
    					ResultSet.CONCUR_READ_ONLY
    					).executeQuery("SELECT * FROM auteur WHERE nom_auteur = " + str);
    			while(result.next())
    				auteur = new Auteur(result.getInt("id_auteur"), str);
    				
    		} catch (SQLException e) {
    			
    			e.printStackTrace();
    		}
    		return auteur;
    	}

    Maintenant le code pour l'écrire et c'est la que le bas blesse, je ne sais pas comment boucler au niveau d'un objet, je sais le faire lorsque je recherche un int, mais lorsque c'est un string je ne sais pas.... Du coup c'est inévitable je n'affiche qu'une donnée....

    DAO<Auteur> auteurDAOS = new AuteurDAO(SdzConnection.getInstance());
    Auteur auteur = auteurDAOS.FindByA("'BEAKE Lesley'");
    System.out.println(auteur.getId_auteur());


     Voila ma BDD si ça peut aider



    Voila je sais que c'est tout bête en plus, mais j'ai cherché, même en posant cette question d'ailleurs mais la je sèche alors j'appuie sur "envoyer". :p

    Merci pour votre aide.



    -
    Edité par UnagiV 14 août 2017 à 12:21:48

    • Partager sur Facebook
    • Partager sur Twitter
      14 août 2017 à 12:38:58

      Salut. Eh bien il faudrait que ta méthode renvoie une liste plutôt

      public List<Auteur> FindByA(String str) {
          List<Auteur> auteurs = new ArrayList<>();
           
          try {
              ResultSet result = this.connect.createStatement(
                      ResultSet.TYPE_SCROLL_INSENSITIVE,
                      ResultSet.CONCUR_READ_ONLY
                      ).executeQuery("SELECT * FROM auteur WHERE nom_auteur = " + str);
              while(result.next())
                  auteurs.add(new Auteur(result.getInt("id_auteur"), str));
                   
          } catch (SQLException e) {
               
              e.printStackTrace();
          }
          return auteurs;
      }

      Et ensuite

      List<Auteur> auteurs = auteurDAOS.FindByA("'BEAKE Lesley'");
      auteurs.forEach(auteur -> System.out.println(auteur.getId_auteur()));// si tu utilise java 8




      • Partager sur Facebook
      • Partager sur Twitter
        14 août 2017 à 12:57:25

        Parfait Kulturman, cela va m'être très utile pour la suite, merci énormément!!



        -
        Edité par UnagiV 14 août 2017 à 13:00:30

        • Partager sur Facebook
        • Partager sur Twitter
          14 août 2017 à 13:36:50

          Y a pas de quoi. Bonne suite.
          • Partager sur Facebook
          • Partager sur Twitter

          Entrer les données d'une requete dans un objet

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown