Bonjour
Je suis toujours entrain de développer une applet.
J'ai installé correctement (enfin je pense) ce qu'il faut pour pouvoir utiliser correctement une base de données.
J'ai trouvé sur ce site un tutoriel expliquant comment utiliser les db avec Java.
J'explique ce que j'ai fait
j'ai une liste contenant les 7 jours de la semaine. Lorsque l'utilisateur clic sur un des jours, cela affiche dans une autre liste les absents de ce jour la.
Donc j'ai mis dans ma liste des jours un ActionListener qui fait appel à la classe s'occupant de la db.
Mon problème est comment renvoyer le résultat de la requête à la méthode appelante afin d'afficher le résultat dans la seconde liste?
voici l'ensemble de mes codes
Methode appelante (pour le moment y a pas de requete definie mais cela sera un select)
Maintenant le code de la classe pour la dbCode:
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 import java.awt.BorderLayout; import java.awt.Component; import java.awt.Container; import java.text.DateFormat; import java.util.Date; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class semaine1Panel extends JPanel { public semaine1Panel() { JLabel jlabel1 = new JLabel("Sont absents ce jour"); JLabel jlabel2 = new JLabel("Les jours de la semaine"); /* listbox de droite contenant les jours de la semaine */ List joursem = new List(6); joursem.add("Lundi"); joursem.add("Mardi"); joursem.add("Mercredi"); joursem.add("Jeudi"); joursem.add("Vendredi"); joursem.add("Samedi"); joursem.add("Dimanche"); joursem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { basededonnees bd = new basededonnees(); } }); /* disposition à l'écran des éléments de l'interface */ setLayout(null); addComponent(jlabel1, 17,45,154,18); addComponent(jlabel2, 777,45, 154, 18); addComponent(joursem, 780, 75, 154, 128); } private void addComponent ( Component c, int x, int y, int width, int height) { c.setBounds(x,y,width,height); add(c); } }
Ici je devrais remplacer le code system.out... par quelque chose qui renvoie le résultat à la méthode appelante ??Code:
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 import java.sql.*; import java.io.*; public class basededonnees { static String syntaxe="pg PILOTE URL UID MDP"; public static void main(String arg[]) { // init paramètres de la connexion Connection connect=null; // autres données Statement S=null; // objet d'émission des requêtes ResultSet RS=null; // table résultat d'une requête d'interrogation String sqlText; // texte de la requête SQL à exécuter int nbLignes; // nb de lignes affectées par une mise à jour int nbColonnes; // nb de colonnes d'un ResultSet try{ // connexion à la base Class.forName("com.mysql.jdbc.Driver"); connect=DriverManager.getConnection("jdbc:mysql:Prieur","",""); S=connect.createStatement(); sqlText=arg[0]; try{ if(S.execute(sqlText)){ // on a obtenu un ResultSet - on l'exploite RS=S.getResultSet(); // nombre de colonnes nbColonnes=RS.getMetaData().getColumnCount(); // exploitation de la table des résultats while(RS.next()){ // tant qu'il y a une ligne à exploiter for(int i=1;i<nbColonnes;i++) System.out.print(RS.getString(i)+","); System.out.println(RS.getString(nbColonnes)); }// ligne suivante du ResultSet } else { // c'était une requête de mise à jour nbLignes=S.getUpdateCount(); }//if } catch (Exception e){ } } catch (Exception e){ } try{ // on libère les ressources liées à la base RS.close(); S.close(); connect.close(); } catch (Exception e){} } }
Merci