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 :

Tableau avec résultat SQL d'une BDD Access


Sujet :

JDBC Java

  1. #1
    Courgette17
    Invité(e)
    Par défaut Tableau avec résultat SQL d'une BDD Access
    J'ai un fichier que j'ai essayé de bricoler de façon à pouvoir avoir un tableau affichant les colonnes d'une table de ma BDD Access mais il me reste un type d'erreur que je n'arrive pas à supprimer: cannot find symbol method

    JCreator me l'affiche à quelques reprises et je n'arrive pas à les résoudre: à chaque fois que je fais import java.lang.Object ou java.lang.String comme je crois comprendre, les erreurs subsistent. Et si je précise ces méthodes pour chacun des objets il me dit qu'il me manque un ";" alors que je vois pas ou en mettre dans ce cas la.

    J'essaie d'avoir un code où je peux avoir les requêtes SQL que je veux au lieu d'un code qui me scanne toutes les tables de ma BDD.
    Voici mon code ou j'ai pas mal c/c en effet, d'ou les commentaires en anglais qui m'aide pas mal.

    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
     
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.sql.*;
     
    public class Super extends JPanel {
        private boolean DEBUG = false;
     
        public Super() {
            super(new GridLayout(1,9));
            JTable atable;
     
    	// Connexion
    			try {
    		    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    			String filename = "java.mdb";
    			String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
    		    database+= filename.trim() + ";DriverID=22;READONLY=true}";
    			Connection con = DriverManager.getConnection( database ,"",""); 
    			Statement s = con.createStatement();
     
    // get TableModel definition to which the resultset has to be displayed 
    			Super aModel = new Super();
     
    	    //get the metadata and column count from the resultset
    		//Allocate an array to hold the column names
    		ResultSet rs = s.executeQuery("select * from Utilisateur");
     
    	    ResultSetMetaData rsmd = rs.getMetaData();
    	    int colCount = rsmd.getColumnCount();
     
    	    //Allocate an array to hold the column names
    	    String[] columnNames = 
    	    {"IdUser","Login","Password","Nom","Prenom","Adresse","CodePostal","Ville","Pays"};
    	   // String[] columnNames = new String[colCount];
     
    	    //get the column names from the resultset
    	    for (int i=0; i< colCount; i++)
    		columnNames[i] = rsmd.getColumnLabel(i+1);
     
    	    //set the column headers
    		aModel.setColumnIdentifiers(columnNames);		
     
    	    // Loop through the ResultSet and transfer in the Model
    	    while(rs.next()){
     
    		//Allocate a new row
    		Object[] data = new Object[colCount];
     
    		//Add the column values to the row
    		for(int i=0;i<colCount;i++){
    		    data[i]=rs.getObject(i+1);
    		}
     
    		//add the row to the table model
    		aModel.addRow(data);
    	    }// Fin de la boucle while
     
    	    //place the table model into the table for displaying
    	    atable.setModel(aModel);
     
    	    //close the resultset
    	    closeResultSet(rs);
     
            final JTable table = new JTable(data, columnNames);
            table.setPreferredScrollableViewportSize(new Dimension(500, 70));
     
            if (DEBUG) {
                table.addMouseListener(new MouseAdapter() {
                    public void mouseClicked(MouseEvent e) {
                        printDebugData(table);
                    }
                });
            }
     
            //Create the scroll pane and add the table to it.
            JScrollPane scrollPane = new JScrollPane(table);
     
            //Add the scroll pane to this panel.
            add(scrollPane);
     
            //	s.close(); 
    	    //	con.close(); 
    	    //	System.out.println("Connexion à la base de données stoppée.");
    	    	}// FIN DU TRY
            catch (Exception e) {
            System.out.println("Error: " + e);}
    	    // Fin de la connexion
     
        }
     
        private void printDebugData(JTable table) {
            int numRows = table.getRowCount();
            int numCols = table.getColumnCount();
            javax.swing.table.TableModel model = table.getModel();
     
            System.out.println("Value of data: ");
            for (int i=0; i < numRows; i++) {
                System.out.print("    row " + i + ":");
                for (int j=0; j < numCols; j++) {
                    System.out.print("  " + model.getValueAt(i, j));
                }
                System.out.println();
            }
            System.out.println("--------------------------");
        }
     
        private static void createAndShowGUI() {
            //Create and set up the window.
            JFrame frame = new JFrame("Super");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            //Create and set up the content pane.
            Super newContentPane = new Super();
            newContentPane.setOpaque(true); //content panes must be opaque
            frame.setContentPane(newContentPane);
     
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        }
     
        public static void main(String[] args) {
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
                }
            });
        }
    }
    L'une des erreurs se situe à ce niveau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aModel.setColumnIdentifiers(columnNames);

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    ben ni ta classe Super,ni ces ancêtres ne possèdent les méthodes que tu essaies d'appeler.

    Es tu sûr d'avoir tout bien copier/coller ?

    parce que là le message est clair, il ne connait pas la méthode que tu lui dis d'utiliser ...

  3. #3
    Courgette17
    Invité(e)
    Par défaut
    JCreator me l'affiche à quelques reprises et je n'arrive pas à les résoudre: à chaque fois que je fais import java.lang.Object ou java.lang.String comme je crois comprendre, les erreurs subsistent
    Bah comme l'erreur subsiste je l'ai enlevé vu que cela ne change rien .

    Mais j'avais quelque chose comme :
    java.lang.String aModel.setColumnIdentifiers(columnNames);


    dans ce cas la

  4. #4
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    ben ton aModel devrait être du type Super... pas String ! (d'ailleurs tu ne devrais pas utiliser ce nom de classe)

    je te dis, tu as un pb de copier coller. Tu devrais reprendre ton code petit à petit, surtout si tu ne le comprends pas ...

    D'ailleurs c'est un peu bizarre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class Super() {
     
        public Super(){
              Super aModel = new Super();
        }
    }
    c'est vraiment ce que tu souhaites faire ? je m'étais jamais dis qu'on pouvait faire des boucles infinies avec un constructeur ...

  5. #5
    Courgette17
    Invité(e)
    Par défaut
    Oui, j'appelle toujours mes programmes Super, jusqu'a ce que je me rende compte qu'en java ça voulait dire quelque chose...

    Merci pour vos réponses, ça m'a pas mal aidé à progresser.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/02/2013, 11h15
  2. remplir un tableau avec les données d'une BDD
    Par info3licen dans le forum Langage
    Réponses: 5
    Dernier message: 18/12/2012, 13h10
  3. Connecter une BDD ACCESS avec DbExpress
    Par gilardino dans le forum Débuter
    Réponses: 7
    Dernier message: 03/04/2008, 21h38
  4. VB2005 Accès à une bdd access avec un loginform
    Par Herlece dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/01/2008, 17h50
  5. concaténation avec SQL dans une BD access
    Par jouidos dans le forum Accès aux données
    Réponses: 2
    Dernier message: 28/02/2007, 20h18

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