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 :

Récupération pour table


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Points : 20
    Points
    20
    Par défaut Récupération pour table
    Bonjour à tous,

    Dans mon JTable je veux récupérer la colonne "prenom" qui est dans une table nommé "Personne" hors quand j'utilise la méthode qui permet de lire ce que contient mon autre table "opération" je veux que "prenom" de la table "personne" apparaisse.
    dans la colonne "prenom" de la table opération j'ai quelque chose comme pkg.entite.Client@xxxxxx au lieu du prénom (pk.entité est le package et Client est la classe)

    Avez-vous une solution pour faire apparaître le prénom ?

    Voici mon code

    Classe ModeleOperation2:
    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
     package pkg.controle.modele;
     
    import java.util.ArrayList;
    import java.util.Date;
     
    import javax.swing.table.AbstractTableModel;
     
    import pkg.entite.Operation2;
     
    public class ModeleOperation2 extends AbstractTableModel {
     
    	 private static final long serialVersionUID = 1L;
    	    Operation2 instanceOperation2 = new Operation2();
    	    private ArrayList<Operation2> lesOpérations2 = instanceOperation2.getLesOpérations();
    	    private final String[] lesTitres = {"Prénom", "Rib", "Date", "Mode Paiement", "Tiers", "Catégorie", "Montant"};
     
    	    public int getRowCount() {
    	    	return lesOpérations2.size();
    	    }
    	    public int getColumnCount() {
    	    	return lesTitres.length;
    	    }
    	    public String getColumnName(int columnIndex) {
    	    	return lesTitres[columnIndex];
    	    }
     
    	    public Object getValueAt(int rowIndex, int columnIndex) {
    			switch(columnIndex){
    			case 0:
    				return lesOpérations2.get(rowIndex).getPrenomOpe2();
    			case 1:
    				return lesOpérations2.get(rowIndex).getRib();
    			case 2:
    				return lesOpérations2.get(rowIndex).getDate();
    			case 3:
    				return lesOpérations2.get(rowIndex).getModedepaiement();
    			case 4:
    				return lesOpérations2.get(rowIndex).getTiers();
    			case 5:
    				return lesOpérations2.get(rowIndex).getCategorie();
    			case 6:
    				return lesOpérations2.get(rowIndex).getMontant();
    				default:
    					return null;
    			}
     
    }
     
    	    public Class<?> getColumnClass(int columnIndex){
    			switch(columnIndex){
    			case 0:
    				return String.class;
    			case 1:
    				return String.class;
    			case 2:
    				return Date.class;
    			case 3:
    				return String.class;
    			case 4:
    				return String.class;
    			case 5:
    				return String.class;
    			case 6:
    				return double.class;
    			default:
    				return Object.class;
    			}
    		}
     
    	    public void creerMOD(Operation2 uneOperation2) {
    			lesOpérations2.add(uneOperation2);
    			fireTableRowsInserted(lesOpérations2.size() -1, lesOpérations2.size() -1);
    	    }
     
    	    public void supprimerMOD(int rowIndex) {
    			lesOpérations2.remove(rowIndex);
    			fireTableRowsDeleted(rowIndex, rowIndex);
    	    }
     
    	    public void modifierMOD(int firstRow, int lastRow, Operation2 uneOperation2) {
    			lesOpérations2.set(firstRow, uneOperation2);
    			fireTableRowsUpdated(firstRow, lastRow);
    	    }
     
    	    public void lireRecupMOD(ArrayList<Operation2> nouvellesOperations2){
    			lesOpérations2 = nouvellesOperations2;
    			fireTableDataChanged();
    	    }
    }
    Classe Operation2 :
    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
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    package pkg.entite;
     
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Date;
     
    import javax.swing.JOptionPane;
     
    import pkg.controle.connexion.ControleConnexion;
     
    public class Operation2 {
     
    	private Client prenom;
    	private String rib;
    	private Date date;
    	private String modedepaiement;
    	private String tiers;
    	private String categorie;
    	private double montant;
     
    	private static Connection laConnexion = ControleConnexion.getConnexion();
        private ArrayList<Operation2> lesOpérations = new ArrayList<Operation2>();
     
     
        /*
         * Constructeur 
         */
        public Operation2( Client prenom,String rib, Date date, String modedepaiement, String tiers, 
        		String categorie, double montant) {
        	this.prenom=prenom;
        	this.rib=rib;
        	this.date=date;
        	this.modedepaiement=modedepaiement;
    		this.tiers=tiers;
    		this.categorie=categorie;
    		this.montant=montant;
        }
        /*
         * Constructeur 2
         */
        public Operation2(){
        	lireRecupCRUD();
        }
        /*
         * Constructeur 3
         */
        public Operation2(String rib){
        	this.rib = rib;
        }
     
      //Getters
      	public String getRib() {
      		return rib;
      	}
     
      	public Client getPrenomOpe2() {
      		return prenom;
      	}
     
      	public Date getDate() {
      		return date;
      	}
     
      	public String getModedepaiement() {
      		return modedepaiement;
      	}
     
      	public String getTiers() {
      		return tiers;
      	}
     
      	public String getCategorie() {
      		return categorie;
      	}
     
      	public double getMontant() {
      		return montant;
      	}
     
      	public ArrayList<Operation2> getLesOpérations() {
      		return lesOpérations;
      	}
     
      	//setters
      	public void setRib (String rib) {
      		this.rib=rib;
      	}
      	public void setPrenom(Client prenom) {
      		this.prenom=prenom;
      	}
      	public void setDate(Date date) {
      		this.date=date;
      	}
      	public void setModedepaiement (String modedepaiement){
      		this.modedepaiement=modedepaiement;
      	}
      	public void setTiers(String tiers){
      		this.tiers=tiers;
      	}
      	public void setCategorie(String categorie) {
      		this.categorie=categorie;
      	}
      	public void setMontant(double montant) {
      		this.montant=montant;
      	}
     
      	/*
         * Lecture et récupération des enregistrements de la BD
         */
        public void lireRecupCRUD() {
    		try {    
    		    Statement state = laConnexion.createStatement();
    		    ResultSet rs = state.executeQuery(
    		    		"SELECT Operation2.rib, Personne.prenom, Operation2.date, Operation2.modedepaiement, Operation2.tiers, Operation2.categorie, Operation2.montant " +
    		    		"FROM Personne, Operation2 " +
    		    		"WHERE Personne.rib = Operation2.rib");
    		    while (rs.next()) {
    		    	// Information client
    			String prenom = rs.getString("prenom");
    			String rib = rs.getString("rib");
    			Date date = rs.getDate("date");
    			String modedepaiement = rs.getString("modedepaiement");
    			String tiers = rs.getString("tiers");
    			String categorie = rs.getString("categorie");
    			double montant = rs.getDouble("montant");
    			lesOpérations.add(new Operation2(new Client(prenom), rib, date, modedepaiement,
    					tiers, categorie, montant));  
    		    }			
    		} catch (SQLException e) {
    			JOptionPane.showMessageDialog(null, 
    			    	"Problème rencontré : " + e.getMessage(),
    			    	"Résultat", JOptionPane.ERROR_MESSAGE);
    		}
        }
     
     
    }
    et la classe FenOperation2 (vue)
    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
    package pkg.dialogue;
     
    import java.awt.EventQueue;
    import java.awt.Font;
    import java.awt.Toolkit;
     
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.UIManager;
    import javax.swing.border.EmptyBorder;
     
    import pkg.controle.modele.ModeleOperation2;
     
    public class FenOperation2 extends JFrame {
    	private static final long serialVersionUID = 1L;
     
    	private JPanel conteneur;
    	private JLabel jl_titre_client;
    	private JTable table = null;
    	 private JScrollPane jScrollPane = null;
    	private ModeleOperation2 leModeleOperation2 = new ModeleOperation2();
        private int num_ligne_modify = 0;
     
     
    	 /**
         * Launch the application.
         */
        public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    		    public void run() {
    				try {
    				    UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
    				    FenOperation2 frame = new FenOperation2();
    				    frame.setVisible(true);
    				} catch (Exception e) {
    				    e.printStackTrace();
    				}
    		    }
    		});
        }
     
     
        /*
         * Constructeur
         */
        public FenOperation2() {
    		conteneur = new JPanel();
    		conteneur.setBorder(new EmptyBorder(5, 5, 5, 5));
    		conteneur.setLayout(null);
     
    		conteneur.add(getJLTitreClient());
    		conteneur.add(getJTable());
    		conteneur.add(getJScrollPane());
     
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 1028, 616);
    		setTitle("Opérations");
    		setLocationRelativeTo(null);
    		setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/gestion/logoEclipse.png")));
    		setContentPane(conteneur);
     
        }
     
        private JLabel getJLTitreClient() {
    		if (jl_titre_client == null) {
    			jl_titre_client = new JLabel();
    			jl_titre_client.setText("Gestion des opérations");
    			jl_titre_client.setFont(new Font("Segoe UI", Font.BOLD, 24));
    			jl_titre_client.setBounds(292, 13, 428, 67);
    			jl_titre_client.setIcon(new ImageIcon(getClass().getResource("/images/gestion/Database.png")));
    		}
    		return jl_titre_client;
        }    
     
        private JTable getJTable() {
    	if (table == null) {
    	    table = new JTable(leModeleOperation2);		    
    	    // bulle d'aide : utilisation de code html dans Java
    	    table.setToolTipText("<html><img src=\""+
    		    		   FenOperation2.class.getResource("/images/gestion/retour.png")+
    		    		   "\" />Pour <b>modifier</b> unne ligne, vous devez <b>double-cliquez</b> sur <b>celle-ci</b></html>");
    	    table.addMouseListener(new java.awt.event.MouseAdapter() {
    			public void mousePressed(java.awt.event.MouseEvent e) {
    			    if( e.getClickCount() == 2 ){
    					num_ligne_modify = table.getSelectedRow();
    			    }
    			}
    	    });
    	}	
    	return table;
    }
     
        private JScrollPane getJScrollPane() {
    		if (jScrollPane == null) {
    		    jScrollPane = new JScrollPane();
    		    jScrollPane.setBounds(256, 272, 741, 252);
    		    jScrollPane.setViewportView(getJTable());
    		}
    		return jScrollPane;
        }
     
     
     
    }
    Merci d'avance pour votre aide !

  2. #2
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    Tout d'abord prenom est de type Client. Le mapping de type indiqué au tableau n'est donc pas bon car c'est indiqué String.class.
    À quoi correspond la classe Client ? Est-elle nécessaire ?
    Le mieux serait que prenom soit typé comme String.
    Si ce n'est pas possible, une surcharge de la méthode toString de la classe Client devrait également résoudre le problème.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Février 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    Ma classe "Client" correspond en gros à une table où sont stocké le nom, prénom, etc... du client et oui je pense qu'elle est nécessaire car dans mon tableau opération je veux que la colonne "prénom" de la table client apparaissent.

    En suivant ton conseil et en remplaçant Client par String ça semble fonctionner je te remercie beaucoup de ton aide Nudget

Discussions similaires

  1. Récupération ID table 2 pour alimenter table 1
    Par fdthierry dans le forum Développement de jobs
    Réponses: 10
    Dernier message: 29/10/2014, 16h57
  2. DWH : Données pour table dimension Geographie
    Par jeff37 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/05/2007, 18h13
  3. Réponses: 8
    Dernier message: 11/11/2006, 19h31
  4. Chemin relatif pour tables liées
    Par kiki_b dans le forum Access
    Réponses: 8
    Dernier message: 15/06/2006, 18h17
  5. definir chemin pour table liée
    Par branqueira dans le forum Access
    Réponses: 4
    Dernier message: 22/10/2005, 13h44

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