Bonjour,

Je voudrais lire un abonné dont l'id sera fourni par l'utilisateur dans la bd dont les champs de la table Abonné sont les suivants:
ID_ABONNER NUMBER(38,0) No 1
NOM_ABONNER VARCHAR2(50 BYTE) Yes 2
PRENOM_ABONNER VARCHAR2(50 BYTE) Yes 3
ADRESSE_ABONNER VARCHAR2(50 BYTE) Yes 4
TEL_ABONNER VARCHAR2(50 BYTE) Yes 5
LIEU_DE_TRAVAIL_ABONNER VARCHAR2(50 BYTE) Yes 6
ETABLISEMENT_ABONNER VARCHAR2(50 BYTE) Yes 7
PHOTOS BLOB Yes 8


À l'aide d'une requête préparée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
private static final String RECHERCHER_ID="select * from ABONNE where ID_ABONNER=?";
j'ai une fonction de recherche déclarée dans une classe AbonneBD qui retourne un type Abonne

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
public Abonne rechercher_id(Integer identifiant) {
       Abonne abonner=new Abonne();
        PreparedStatement ps=null;
        try
        {
            ps=ConnexionProjet.getInstance().prepareStatement(RECHERCHER_ID);
           // System.out.println("Connecte");
            ps.setInt(1, abonner.getId_abonne() );
            ResultSet resulta=ps.executeQuery();
            while(resulta.next())
            {
                abonner.setId_abonne(resulta.getInt(1));
                abonner.setNom(resulta.getString(2));
                abonner.setPrenom(resulta.getString(3));
                abonner.setAdresse(resulta.getString(4));
                abonner.setTelephone(resulta.getString(5));
                abonner.setLieu_travail(resulta.getString(6));
                abonner.setEtablissement(resulta.getString(7));
                abonner.setPhoto(resulta.getBlob(8));
 
            }
 
        }
        catch (Exception e) {
			//System.out.println(e.getMessage());
            JOptionPane.showMessageDialog(null,"FORMAT INVALIDE","Recherche",JOptionPane.ERROR_MESSAGE);
	}
        System.out.println(abonner.getNom());
        return abonner; 
    }
et une classe Entite où cette fonction sera appelée par une autre fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public void rechercher(){
 
    	abonneBD=new AbonnerBD();
    	int identifient=Integer.parseInt(frm.jTextFieldID.getText());
       System.out.print(identifient);
 
       // abonne= abonneBD.rechercher_id(identifient);
        System.out.print(abonneBD.rechercher_id(identifient).getNom());
 
}
NB: le frm est un type FormeRecherche extends JFrame instanciée tout en haut de la classe Entite
j'ai mis l'action cliqué sur un bouton de FormeRecherche

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
JButton btnRechercher = new JButton("Rechercher");
		btnRechercher.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				if(btnRechercher!=null)
					entite.rechercher();
 
			}
		});
		btnRechercher.setBounds(93, 127, 87, 23);
		contentPane.add(btnRechercher);
quand j'exécute il me retourne null. aidez moi svp