tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 2 Beitrag von Fabio Hellmann
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
503
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chuvak chuvak ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    311
    Ich lese Daten aus einer Datenbank aus:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    public Object[] select() {
       Object[] data; // data wird definiert
        try {
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECT * FROM CUSTOMERS");
            while (rs.next()) {
        
    // Hier müsste data befüllt werden mit 
    // rs.getString("vorname");
    // rs.getString("nachname");
     
            }
            rs.close();
            stmt.close();
        } catch (SQLException ex) {
            System.out.println("error while selecting");
            System.err.println(ex);
        }
        return data;
    }
     
    // ---
    // hiermit wird diese Methode von außerhalb aufgerufen:
    model.addRow(DB.INSTANCE.select());

    Die Daten sollen dann einfach in eine JTable geladen werden.

    Hat jemand eine Idee, wie ich meinen Gedankengang in die Tat umsetzen kann?
    Evtl. mit einer Arraylist?
     
    "Ein Pessimist ist ein Optimist mit Erfahrung."

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,
    erstell für einen Customer doch einfach ein Objekt, in dem du die Werte speicherst. Die Customer-Objekte kannst du dann ganz einfach in einem Array/List abspeichern.
    Dann brauchst du natürlich in deinem Model noch ein paar Methoden überschreiben, damit du aus deinem Customer Objekt die Werte wieder raus bekommst, die angezeigt werden sollen.

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    chuvak chuvak ist offline Mitglied Brokat
    Registriert seit
    Mar 2005
    Beiträge
    311
    Dankeschön. Hättest du vielleicht noch ein Codebeispiel für mich?
     
    "Ein Pessimist ist ein Optimist mit Erfahrung."

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Die Customerklasse:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    public class Customer
    {
        private String firstname;
        private String familyname;
     
        public void setFirstname(String firstname) {
            this.firstname = firstname;
        }
     
        public String getFirstname() {
            return firstname;
        }
     
        public void setFamilyname(String familyname) {
            this.familyname = familyname;
        }
     
        public String getFamilyname() {
            return familyname;
        }
    }

    Das DefaultTableModel:
    Code java:
    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
    
        private final List<Customer> customerList = new ArrayList<Customer>();
        private final DefaultTableModel model;
        
        private String[] columnNames = { "Firstname", "Familyname" };
        
        /**
         * 
         */
        public DeinKonstruktorName() {
            model = new DefaultTableModel()
            {
                @Override
                public Object getValueAt(int row, int column) {
                    // evtl. muss row noch -1 genommen werden
                    Customer customer = customerList.get(row);
                    if (column == 1) {
                        return customer.getFirstname();
                    } else if (column == 2) {
                        return customer.getFamilyname();
                    }
                    return super.getValueAt(row, column);
                }
                
                @Override
                public int getColumnCount() {
                    return columnNames.length;
                }
                
                @Override
                public String getColumnName(int column) {
                    return columnNames[column];
                }
                
                @Override
                public Class<?> getColumnClass(int columnIndex) {
                    return String.class;
                }
                
                @Override
                public int getRowCount() {
                    return customerList.size();
                }
            };
            JTable table = new JTable(model);
        }

    und die Methode zum syncronizieren mit der DB:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
        public void syncWithDatabase() {
            customerList.clear();
            try {
                stmt = conn.createStatement();
                rs = stmt.executeQuery("SELECT * FROM CUSTOMERS");
                while (rs.next()) {
                    Customer c = new Customer();
                    c.setFirstname(rs.getString("vorname"));
                    c.setFamilyname(rs.getString("nachname"));
                    customerList.add(c);
                }
                rs.close();
                stmt.close();
                model.fireTableDataChanged();
            } catch (SQLException ex) {
                System.out.println("error while selecting");
                System.err.println(ex);
            }
        }

    Ich hab den Code vorher nicht getestet. Ich kann dir also nicht versprechen, dass der funktioniert.

    Gruß

    Fabio
    chuvak und Julius bedanken sich. 
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 24.10.10, 10:37
  2. Antworten: 1
    Letzter Beitrag: 12.11.08, 11:42
  3. Antworten: 5
    Letzter Beitrag: 28.08.07, 20:03
  4. myHashMap.put(Object,Object) ?
    Von JuSTuS24 im Forum Java
    Antworten: 4
    Letzter Beitrag: 13.07.06, 11:36
  5. Verständnisfrage Dim Sales(,) As Object = New Object(,)
    Von flotschie im Forum .NET Datenverwaltung
    Antworten: 6
    Letzter Beitrag: 05.10.05, 19:48

Stichworte