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 :

Variable avec requête de base de données


Sujet :

JDBC Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut Variable avec requête de base de données
    Bonjour,

    Je suis débutant dans ce langage.

    Voilà le code:
    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
     
    package Annu;
    import java.sql.*;
    import java.io.*;
     
    public class launch {
     
            public int i =1;
     
    	public static void main(String[] args){
    		Annuaire AN = new Annuaire(); // instanciation d'un annuaire
     
     
    		String url = "jdbc:odbc:BDDannuaire";
    		Connection con = null;
    		try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    		con= DriverManager.getConnection(url,"","");
    		Statement requete = con.createStatement();
    		ResultSet resultatContact = requete.executeQuery("SELECT * FROM contact");
    		while (resultatContact.next()){
    			//System.out.print(resultatContact.getInt(1)+" "+resultatContact.getString(2)+" "+resultatContact.getString(3)+" "+resultatContact.getString(4)+" "+resultatContact.getInt(5)+" "+resultatContact.getString(6)+" "+resultatContact.getString(7)+" "+resultatContact.getInt(8)+" "+resultatContact.getString(9));
    			Entreprise EN1 = new Entreprise(resultatContact.getInt(1),resultatContact.getString(2),resultatContact.getString(3),resultatContact.getString(4),resultatContact.getInt(5),resultatContact.getString(6),resultatContact.getString(7),resultatContact.getInt(8),resultatContact.getString(9));
    			AN.AjouterContact(EN1);
    		};
    		}
    		catch (Exception e){ System.out.println("Exception");}
    		finally{
    			try {con.close();
    			}
    			catch (SQLException e){e.printStackTrace();
    		}
     
     
    		AN.afficherLesContacts();
    Tout fonctionne bien.
    Sauf que lorsque je fais ma requete, je ne suis pas sensé savoir combien de résultats je vais avoir. Donc au lieu de Entreprise EN1 j'aimerai avoir une variable i pour fais un peu comme cela: EN+i = new .... puis AN.AjouterContact(EN+i);

    Avez-vous une idée??

    merci d'avance

  2. #2
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Salut !

    Combien de lignes dans le ResultSet ?
    avant le while :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     result.last();
     int i = result.getRow();  
     result.beforeFirst();    // se remettre au début

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu n'a qu'à stocker tes résultat dans un tableau (si tu connais la taille avant de récupérer els résultat) ou dans un Vector ou un ArrayList (voir la javadoc pour plus d'infos)

  4. #4
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    Bonjour,

    pourquoi avoir besoin d'avoir une variable local ENx?

    vu que la tu recupere tous les contact de la base pour les metre dans un annuaire, tu peu donc logiquement y acceder via l'annuaire non?

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    en fait, c'est pour avoir tous mes objets. Car lorsque je crée un contact et que je le mets dans l'annuaire, par la suite, je voudrai y ajouter des numéros de tel (plusieurs) pour chaque contact.

    pour la variable, je ne suis pas sensé connaitre le nombre de lignes. C'est pour ca que je demande ca!

    De plus, Lorsque je lance le programme, je voudrai (en plus de l'ajout des contacts dans l'annuaire), j'aimerai récupérer les numéros pour instancier directement mon vecteur MesNumeros dans la classe Contacts.

    Je ne sais pas si vous voyez ce que je veux dire.

    Est-ce que je mets toutes mes classes?? au total, j'en ai 5 (Telephone, Contact, Entreprise, Annuaire et Launch)

  6. #6
    Membre très actif Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Par défaut
    je suppose que les numéro provienne eux aussi de la base, au quelle cas tu peu les ajouter directement a ce moment la (et donc tu n'a plus la nécessiter d'avoir plein de ENx)
    sinon l'idee de tchize_ est trec bonne utilise un ArrayList

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    oui, tout provient de la base de données (au début) après, lorsque je crée un objet Entreprise ou Telephone, ca s'enregistrera automatiquement dans la base de données.

    Voici mes classes:

    Classe Telephone:
    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
     
    package Annu;
     
    public class Telephone {
     
    	protected String Nature;
    	protected String Tel;
     
    	//constructeur
    	public Telephone(String Nat, String T){
    	Nature = Nat;
    	Tel = T;
    	}	
    	// accesseurs
    	public String GetNature(){
    		return Nature;
    	}
     
    	public String GetTel(){
    		return Tel;
    	}
    	//mutateurs
    	public void SetNature(String Natu){
    		Nature = Natu;
    	}
    	public void SetTel(String Te){
    		Nature = Te;
    	}
     
    	// affichages
    	public void afficherNature(){
    		System.out.println(Nature);
    	}
     
    	public void afficherTel(){
    		System.out.println(Tel);
    	}
     
    	public void afficherTelephone(){
    		System.out.println(Nature +": "+ Tel);
    	}
    }
    Classe Contact:
    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    package Annu;
    import java.util.Vector;
    import java.sql.*;
     
    public class Contact {
    	protected int Num;
    	protected String Nom;
    	protected String Prenom;
    	protected String Adresse;
    	protected int Code_Postal;
    	protected String Ville;
     
     
    	private Vector <Telephone> MesNumeros;
     
    	public Contact(int No,String Nm,String Pre, String ad, int CP,String Vi){
    		Num=No;
    		Nom=Nm;
    		Prenom=Pre;
    		Adresse=ad;
    		Code_Postal=CP;
    		Ville=Vi;
     
    		MesNumeros = new Vector <Telephone>();
     
    		}
     
    	// accesseurs - pour acceder aux données
    	public int GetNum(){
    		return Num;
    	}
     
    	public String GetNom(){
    		return Nom;
    	}
     
    	public String GetPrenom(){
    		return Prenom;
    	}
     
    	public String GetAdresse(){
    		return Adresse;
    	}
     
    	public int GetCP(){
    		return Code_Postal;
    	}
     
    	public String GetVille(){
    		return Ville;
    	}
     
    	// mutateurs  - pour changer des données
    	public void SetNom(String Nm){
    		Nom=Nm;
    	}
     
    	public void SetPrenom(String Pr){
    		Prenom=Pr;
    	}
     
    	public void SetAdresse(String AD){
    		Adresse=AD;
    	}
     
    	public void SetCP(int CP){
    		Code_Postal=CP;
    	}
     
    	public void SetVille(String Vil){
    		Ville=Vil;
    	}
     
     
    	// les affichages
     
     
    	public void AfficherNum(){
    		System.out.println(Num);
    	}
     
    	public void AfficherNom(){
    		System.out.println(Nom);
    	}
     
    	public void AfficherPrenom(){
    		System.out.println(Prenom);
    	}
     
    	public void AfficherAdresse(){
    		System.out.println(Adresse);
    	}
     
    	public void AfficherCP(){
    		System.out.println(Code_Postal);
    	}
     
    	public void AfficherVille(){
    		System.out.println(Ville);
    	}
     
    	public void AfficherContact(){
    		System.out.println("Numéro : "+ Num);
    		System.out.println("Nom : "+Nom);
    		System.out.println("Prenom : "+Prenom);
    		System.out.println("Adresse : "+Adresse);
    		System.out.println("CP : "+Code_Postal);
    		System.out.println("Ville : "+Ville);
    	}
     
    	// ajouts pour la collection
     
    	public void AjouterTel(Telephone nouv){
    		MesNumeros.addElement(nouv);
    	}
     
    	// affichages pour la collection
    	public void AfficherUnTel(int num){
    		MesNumeros.elementAt(num-1).afficherTelephone(); // -1 car le vecteur commence a 0
    		}
     
    	public void AfficherLesTel(){
    	int nbTel= MesNumeros.size();
    	int i=0;
    	while(i<nbTel){
    	MesNumeros.elementAt(i).afficherTelephone();
    	i++;
    	}
    	}
    }
    Classe Entreprise:
    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
     
    package Annu;
     
    public class Entreprise extends Contact{
     
    	protected String Adresse_E;
    	protected int Code_Postal_E;
    	protected String Ville_E;
     
     
    	public Entreprise (int No,String Nm,String Pre,String AD,int CP, String Vi,String Ad_E, int CP_E, String Vi_E){
    		super(No,Nm,Pre,AD,CP,Vi);
    		Adresse_E = Ad_E;
    		Code_Postal_E = CP_E;
    		Ville_E = Vi_E;
     
     
    	}
     
    	public String GetAdresse(){
    		return Adresse_E;
    	}
     
    	public int GetCP(){
    		return Code_Postal_E;
    	}
     
    	public String GetVille(){
    		return Ville_E;
    	}
     
    	public void SetAdresse_Entr(String Ad){
    		Adresse_E = Ad;
    	}
     
    	public void SetCP_Entr(int CP){
    		Code_Postal_E = CP;
    	}
     
    	public void SetVille_Entr(String Vi){
    		Ville_E = Vi;
    	}
     
    	public void afficherAdresse_Entr(){
    		System.out.println(Adresse_E);
    	}
     
    	public void afficherCP_Entr(){
    		System.out.println(Code_Postal_E);
    	}
     
    	public void afficherVille_Entr(){
    		System.out.println(Ville_E);
    	}
     
    	public void afficherEntreprise(){
    		System.out.println("Entreprise :"+Adresse_E+" "+Code_Postal_E+" "+Ville_E);
    	}
     
    }
    Classe Annuaire:
    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
     
    package Annu;
    import java.util.Vector;
     
    public class Annuaire {
     
    	private Vector <Contact> MesContacts;
     
    	public Annuaire(){
    		MesContacts = new Vector <Contact>();
    	}
     
    	public void AjouterContact(Contact nouv){
    		MesContacts.addElement(nouv);
    	}
     
    	public void AfficherUnContact(int numero){
    		MesContacts.elementAt(numero-1).AfficherContact(); // -1 car le vecteur commence a 0
    	}
     
     
    	public void afficherLesContacts(){
    		int nbcontacts= MesContacts.size();
    		int i=0;
    		while(i<nbcontacts){
    		MesContacts.elementAt(i).AfficherContact();
    		i++;
    		}
    	}
    }
    Classe Launch:
    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
     
    package Annu;
    import java.sql.*;
     
     
    public class launch {
     
    	static int i =1;
    	public String EN = "EN"+i;
    	public static void main(String[] args){
     
     
    		Annuaire AN = new Annuaire(); // instanciation d'un annuaire
     
     
    		//récupération des contacts
    		String url = "jdbc:odbc:BDDannuaire";
    		Connection con = null;
    		try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    		con= DriverManager.getConnection(url,"","");
    		Statement requete = con.createStatement();
    		ResultSet resultatContact = requete.executeQuery("SELECT * FROM contact");
    		while (resultatContact.next()){
    			//System.out.print(resultatContact.getInt(1)+" "+resultatContact.getString(2)+" "+resultatContact.getString(3)+" "+resultatContact.getString(4)+" "+resultatContact.getInt(5)+" "+resultatContact.getString(6)+" "+resultatContact.getString(7)+" "+resultatContact.getInt(8)+" "+resultatContact.getString(9));
    			Entreprise EN = new Entreprise(resultatContact.getInt(1),resultatContact.getString(2),resultatContact.getString(3),resultatContact.getString(4),resultatContact.getInt(5),resultatContact.getString(6),resultatContact.getString(7),resultatContact.getInt(8),resultatContact.getString(9));
    			AN.AjouterContact(EN);		
    				}
    		}
    		catch (Exception e){ System.out.println("Exception");}
    		finally{
    			try {con.close();
    			}
    			catch (SQLException e){e.printStackTrace();}
    }
    }
    }
    ____________________________________
    pour la base de données (en access):

    table Telephone:
    - id_tel (numeroauto)
    - Num_Contact (int)
    - Nature(String)
    - Tel(String) car ex: 02.97.84.85.68 (numéro factice )

    table Conatct
    - no_Contact (int)
    - nom(string)
    - prenom(String)
    - CP (int)
    - Ville(String)
    - Adresse_Ent(String)
    - CP_Ent(int)
    - Ville_Ent(String)
    ______________________
    voila!!!

    merci d'avance pour votre aide!

Discussions similaires

  1. [MySQL] Variable PHP dans formulaire avec mise à jour base de données
    Par flingue dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/11/2009, 07h54
  2. Liaison de table avec une autre base de donnée
    Par freya91 dans le forum Access
    Réponses: 1
    Dernier message: 03/06/2006, 00h08
  3. [VBA-E] Requète SQL avec chemin de base de données variable
    Par Svart26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2006, 13h29
  4. [MySQL] Introduire une variable dans requête SQL, insérer des données à la volée
    Par Ronan.f dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 29/04/2006, 22h10
  5. Requête sur base de données ACCESS
    Par JLamotte dans le forum Access
    Réponses: 1
    Dernier message: 21/11/2005, 10h50

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