Datenbank in jTable Laden

max514

Bekanntes Mitglied
Hey, ich hab versucht eine methode zu Konstruieren die mir meine Datenbank in den Jtable einfügt, jetzt speichert es die Checkbox bezahlt vom jTable in der Datenbank mit 1 für true und 0 für false (tinyint), das problem ist die methode ersetzt aber die Checkbox im jtable durch den schriftzug true und false ersetzt

hier mein code :
Java:
public void datenbankLaden(){
        DefaultTableModel table = new DefaultTableModel();
      
        table.addColumn("Auftragsnummer");
        table.addColumn("Auftragsdatum");
        table.addColumn("Auftraggeber");
        table.addColumn("Telefon");
        table.addColumn("E-mail");
        table.addColumn("Lieferadresse");
        table.addColumn("Beschreibung");
        table.addColumn("Menge");
        table.addColumn("Einzelpreis");
        table.addColumn("Gesammtpreis");
        table.addColumn("Bezahlt");
        try{
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/meinedb","root","root123");
            String sql = "SELECT * FROM db.mytable";
            Statement S = con.createStatement();
            rst = S.executeQuery(sql);
          
            while(rst.next()){
                table.addRow(new Object[]{
                    rst.getInt(2),
                    rst.getString(3),
                    rst.getString(4),
                    rst.getString(5),
                    rst.getString(6),
                    rst.getString(7),
                    rst.getString (8),
                    rst.getInt(9),
                    rst.getDouble(10),
                    rst.getDouble(11),
                    rst.getBoolean(12)
                  
                });
            }
          
          jTable.setModel(table); 
        }catch(Exception e){
            JOptionPane.showMessageDialog(this,e.getMessage());
    }
  }
 

krgewb

Top Contributor
Du könntest es so schreiben:
Java:
while(rst.next()) {

    Object[] meineObjekte = new Object[] {
        rst.getInt(2),
        rst.getString(3),
        rst.getString(4),
        rst.getString(5),
        rst.getString(6),
        rst.getString(7),
        rst.getString (8),
        rst.getInt(9),
        rst.getDouble(10),
        rst.getDouble(11),
        rst.getBoolean(12)  
    };

    if(meineObjekte[10].equals(true)) {
        meineObjekte[10] = 1;
    }
    else{
        meineObjekte[10] = 0;
    }

    table.addRow(meineObjekte);
}
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Java:
import javax.swing.*;
import javax.swing.table.*;

public class Test {

    public void run() {        
        JTabbedPane tabs = new JTabbedPane();
        tabs.add("Default", new JScrollPane(new JTable(createDefaultModel())));
        tabs.add("Better", new JScrollPane(new JTable(createBetterModel())));
       
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(tabs);
        frame.pack();
        frame.setVisible(true);
    }

    private TableModel createDefaultModel() {
        return populate(new DefaultTableModel());
    }

    private TableModel createBetterModel() {
        DefaultTableModel m = new DefaultTableModel() {
            @Override
            public Class<?> getColumnClass(int colIx) {
                return colIx == 1 ? Boolean.class : Object.class;
            }
        };

        return populate(m);
    }

    private TableModel populate(DefaultTableModel model) {
        model.addColumn("Name");
        model.addColumn("Bezahlt");
        for (int i = 0; i < 10; i++) {
            int len = (int)(Math.random() * 20);
            StringBuilder b = new StringBuilder();
            for (int k = 0; k < len; k++) {
                b.append((char)(65 + 26 * Math.random()));
            }
            model.addRow(new Object[]{b.toString(), Math.random() > 0.5});
        }
        return model;
    }



    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}
 

mihe7

Top Contributor
OK, der relevante Part ist das Überschreiben des TableModels: wenn Du in getColumnClass für eine Spalte Boolean.class zurückgibst, verwendet die JTable automatisch eine Checkbox.
 

max514

Bekanntes Mitglied
Ja hab ich jetzt =) ich hab es hingekriegt und ich weiß aber mein Poblem ist ich hab vllt 2 monate programmiererfahrung und muss das in einem Monat hinbekommen :(
 

mihe7

Top Contributor
Oder man nutzt googeln und versucht erstmal alleine herauszufinden was Sache ist ;)

Tatsächlich fand ich, anders als @krgweb, mein Beispiel nicht kompliziert sondern für jemanden, der mit JTables und Datenbanken rumhantiert, recht einfach nachvollziehbar. Ich habe schlicht falsche Voraussetzungen angenommen.

Braucht es jetzt noch eine Erklärung des Codes oder ist die Sache nun klar?
 

max514

Bekanntes Mitglied
Ja soweit funktioniert jetzt hab ich aber mehrere checkBoxen und es ändert mir immer nur den letzten TableHeader ?? (Ich weiß es nicht sehr schön aber ich wollte erst mal austesten obs funkttioniert)
Java:
 public MainWindow() {
   
        initComponents();   
        datenbankLaden();
 
    }
 
 
    public void datenbankLaden(){
        DefaultTableModel table = new DefaultTableModel() {
            @Override
            public Class<?> getColumnClass(int colIx) {
                return colIx == 11 ? Boolean.class : Object.class;
            }
        };
   
   
        try{
       
            populate(table);
            jTable.setModel(table);
     
 
        }catch(Exception e){
            JOptionPane.showMessageDialog(this,e.getMessage());
    }
  }
 
  private TableModel populate(DefaultTableModel model) {
   
            try {

                model.addColumn("Auftragsnummer");
                model.addColumn("Auftragsdatum");
                model.addColumn("Auftraggeber");
                model.addColumn("Telefon");
                model.addColumn("E-mail");
                model.addColumn("Lieferadresse");
                model.addColumn("Beschreibung");
                model.addColumn("Auftragsnummer");
                model.addColumn("Menge");
                model.addColumn("Einzelpreis");
                model.addColumn("Gesammtpreis");
                model.addColumn("Bezahlt");
                model.addColumn("Material bestellen");
                model.addColumn("Material bestellt");
                model.addColumn("Fertigungsbeginn");
                model.addColumn("Fertiggestellt");
                model.addColumn("Versenden am");
                model.addColumn("Versendet");
                model.addColumn("Beim Kunden");
           
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/meinedb","root","root123");
                String sql = "SELECT * FROM db.mytable";
                Statement S = con.createStatement();
                rst = S.executeQuery(sql);
           
                while(rst.next()) {
                    model.addRow(new Object[]{
                   
                        rst.getInt(2),
                        rst.getString(3),
                        rst.getString(4),
                        rst.getString(5),
                        rst.getString(6),
                        rst.getString(7),
                        rst.getString (8),
                        rst.getInt(9),
                        rst.getDouble(10),
                        rst.getDouble(11),
                        rst.getBoolean(12),
//                        rst.getString(13),
//                        rst.getBoolean(14),
//                        rst.getString(15),
//                        rst.getBoolean(16),
//                        rst.getString(17),
//                        rst.getBoolean(18),
//                        rst.getString(19)
                   
                       
                    });
               
                }
           
           
            } catch (SQLException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            }
        return model;
    }

Also ich weiß das es an der override methode liegt aber nicht wie ich das problem lösen kann
 
Zuletzt bearbeitet:

max514

Bekanntes Mitglied
ja ist echt witzig ich hab 2 monate java gelernt und soll danach ein Auftragsverwaltungssystem entwickeln :D voll für n Arsch :D noch dazu muss ich mir alles selber beibringen
 

mihe7

Top Contributor
Ja soweit funktioniert jetzt hab ich aber mehrere checkBoxen und es ändert mir immer nur den letzten TableHeader
Mehrere Checkboxen ist ja kein Problem. Sagen wir mal, die Checkboxen kämen in den Spalten mit den Indizes 11 und 13 vor (die Zahlen sind jetzt nicht zufällig gewählt...), dann kannst Du ja in getColumnClass prüfen, ob colIx == 11 oder colIx == 13 gilt:
Java:
return (colIx == 11 || colIx == 13) ? Boolean.class : Object.class;

Und was meinst Du mit "es ändert mir immer nur den letzten TableHeader"?
 

max514

Bekanntes Mitglied
Ja :) ich weiß des ist nicht typisch für n forum aber kannst du mir sagen wie ich die override methode umschreibe das sie alle boolean werte in eine checkbox umwandelt oder mir zeigen wo ich das nachlesen kann ???
 

mihe7

Top Contributor
Mal kurz zur Erklärung: JTable stellt ein TableModel tabellarisch dar. Die einzelne Zelle wird aber nicht von JTable selbst gezeichnet, das übernehmen sog. Renderer (die Details erspare ich Dir im Moment).

Die JTable ermittelt also für jede Zelle, welchen Renderer sie zum Zeichnen der Zelle verwendet. Für die Ermittlung hat JTable verschiedene Möglichkeiten zur Verfügung. Da jeder Wert einen Datentyp besitzt, ist es die einfachste Variante, sich den Datentyp anzusehen. Da in der Regel die Werte einer Spalte vom gleichen Typ sind, wird die Sache etwas vereinfacht. Statt sich von jedem Wert den Typ einzeln anzusehen, würde es ja genügen, der Typ aller Werte der Spalte zu kennen.

Zu diesem Zweck frägt JTable das Model, von welchem Typ die Daten einer bestimmten Spalte sind - durch Aufruf der Methode getColumnClass.

Die Swing-Entwickler haben der JTable ein paar Standards spendiert, dazu gehört, dass für den Spaltentyp Boolean ein Renderer verwendet wird, der die Werte in Form einer Checkbox darstellt.

Wenn Du z. B. Zahlenwerte hast, kannst Du in getColumnClass für die betreffende Spalte Number.class zurückgeben. Dann werden die Zahlen rechtsbündig gerendert (nur mal so als Hinweis, wenn ich mir Deine Tabelle so ansehe).

Gibst Du für eine Spalte Date.class an, werden die Date-Objekte entsprechend den Standardeinstellungen der aktuellen Locale formatiert.

Wie Du das in getColumnClass ermittelst, ist natürlich Dir überlassen. Du kannst Dir z. B. ein Array für Deine Spalten anlegen, mit ifs oder auch einem switch arbeiten:
Java:
switch (colIx) {
    case 9:
    case 10:
        return Double.class;
    case 11:
    case 13:
        return Boolean.class;
    default:
        return Object.class;
}
 

max514

Bekanntes Mitglied
ok vom prinzip hab ich es jetzt verstanden ich hab des jetzt so geändert :
Java:
public MainWindow() {
       
        initComponents();       
        datenbankLaden();
   
    }
   
   
    public void datenbankLaden(){
        DefaultTableModel table = new DefaultTableModel() {
            @Override
            public Class<?> getColumnClass(int bez) {
               
                return (bez == 17 || bez == 11 || bez == 13 || bez == 15) ? Boolean.class : Object.class;   
            }
           
           
        };
   
        try{
           
            populate(table);
            jTable.setModel(table);
         
   
        }catch(Exception e){
            JOptionPane.showMessageDialog(this,e.getMessage());
    }
  }
   
  private TableModel populate(DefaultTableModel model) {
       
            try {

                model.addColumn("Auftragsnummer");
                model.addColumn("Auftragsdatum");
                model.addColumn("Auftraggeber");
                model.addColumn("Telefon");
                model.addColumn("E-mail");
                model.addColumn("Lieferadresse");
                model.addColumn("Beschreibung");
                model.addColumn("Auftragsnummer");
                model.addColumn("Menge");
                model.addColumn("Einzelpreis");
                model.addColumn("Gesammtpreis");
                model.addColumn("Bezahlt");
                model.addColumn("Material bestellen");
                model.addColumn("Material bestellt");
                model.addColumn("Fertigungsbeginn");
                model.addColumn("Fertiggestellt");
                model.addColumn("Versenden am");
                model.addColumn("Versendet");
//                model.addColumn("Beim Kunden");
               
                con = DriverManager.getConnection("jdbc:mysql://localhost:3306/meinedb","root","root123");
                String sql = "SELECT * FROM db.mytable";
                Statement S = con.createStatement();
                rst = S.executeQuery(sql);
               
                while(rst.next()) {
                    nummer++;
                    model.addRow(new Object[]{
                       
                        rst.getInt(2),
                        rst.getString(3),
                        rst.getString(4),
                        rst.getString(5),
                        rst.getString(6),
                        rst.getString(7),
                        rst.getString (8),
                        rst.getInt(9),
                        rst.getDouble(10),
                        rst.getDouble(11),
                        rst.getBoolean(12),
                        rst.getString(13),
                        rst.getBoolean(14),
                        rst.getString(15),
                        rst.getBoolean(16),
                        rst.getString(17),
                        rst.getBoolean(18),
//                        rst.getString(19)
                       
                           
                    });
                   
                }
               
               
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(this,ex.getMessage());
            }
           
        return model;
    }

und es passiert das ??
 

Anhänge

  • Screenshot (4).png
    Screenshot (4).png
    56,4 KB · Aufrufe: 48

max514

Bekanntes Mitglied
hey sry wenn ich stress aber kann mir jemand sagen was ich falsch mach ???

Java:
public JTable DatenbankLaden (JTable jTable){
        DefaultTableModel dtm = new DefaultTableModel() {
            @Override
            public Class getColumnClass(int column) {
                for (int row = 0; row < getRowCount(); row++) {
                    Object o = getValueAt(row, column);

                    if (o != null) {
                        return o.getClass();
                    }
                }

                return Object.class;
            }

        };

        try {

            populate(dtm);
            jTable.setModel(dtm);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return jTable;
    }

    private TableModel populate(DefaultTableModel model) {

        try {

            model.addColumn("Auftragsnummer");
            model.addColumn("Auftragsdatum");
            model.addColumn("Auftraggeber");
            model.addColumn("Telefon");
            model.addColumn("E-mail");
            model.addColumn("Lieferadresse");
            model.addColumn("Beschreibung");
            model.addColumn("Menge");
            model.addColumn("Einzelpreis");
            model.addColumn("Gesammtpreis");
            model.addColumn("Bezahlt");
            model.addColumn("Material bestellzeit");
            model.addColumn("Material bestellen");
            model.addColumn("Material bestellt");
            model.addColumn("Fertigungszeit");
            model.addColumn("Fertigungsbeginn");
            model.addColumn("Fertiggestellt");
            model.addColumn("Lieferzeit");
            model.addColumn("Versenden am");
            model.addColumn("Versendet");
            model.addColumn("Beim Kunden");
            model.addColumn("Auftragerledigt");

            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/meinedb", "root", "root123");
            String sql = "SELECT * FROM db.mytable";
            Statement S = con.createStatement();
            rst = S.executeQuery(sql);

            while (rst.next()) {
                nummer++;
                model.addRow(new Object[]{
                    rst.getInt(2),
                    rst.getString(3),
                    rst.getString(4),
                    rst.getString(5),
                    rst.getString(6),
                    rst.getString(7),
                    rst.getString(8),
                    rst.getInt(9),
                    rst.getDouble(10),
                    rst.getDouble(11),
                    rst.getBoolean(12),
                    rst.getInt(13),
                    rst.getString(14),
                    rst.getBoolean(15),
                    rst.getInt(16),
                    rst.getString(17),
                    rst.getBoolean(18),
                    rst.getInt(19),
                    rst.getString(20),
                    rst.getBoolean(21),
                    rst.getString(22),
                    rst.getBoolean(23)

                });

            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
        
        return model;
    }

so ruf ich sie auf
Java:
public MainWindow() {
        initComponents();
      Datenbank d = new Datenbank();
        jTable = d.DatenbankLaden(jTable);  
//        datenbankLaden();
        jTable.setAutoCreateRowSorter(true);

    }
 

max514

Bekanntes Mitglied
Ich erwarte das es die datenbak in meinen JTable lädt aber es passiert garnichts es startet nicht mal das Programm ??
So funktioniert es
Java:
public MainWindow() {
        initComponents();
//      Datenbank d = new Datenbank();
//        jTable = d.DatenbankLaden(jTable);
        datenbankLaden();
        jTable.setAutoCreateRowSorter(true);

    }


    public void datenbankLaden() {
        DefaultTableModel table = new DefaultTableModel() {
            @Override
            public Class getColumnClass(int column) {
                for (int row = 0; row < getRowCount(); row++) {
                    Object o = getValueAt(row, column);

                    if (o != null) {
                        return o.getClass();
                    }
                }

                return Object.class;
            }

        };

        try {

            populate(table);
            jTable.setModel(table);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, e.getMessage());
        }
    }

    private TableModel populate(DefaultTableModel model) {

        try {

            model.addColumn("Auftragsnummer");
            model.addColumn("Auftragsdatum");
            model.addColumn("Auftraggeber");
            model.addColumn("Telefon");
            model.addColumn("E-mail");
            model.addColumn("Lieferadresse");
            model.addColumn("Beschreibung");
            model.addColumn("Menge");
            model.addColumn("Einzelpreis");
            model.addColumn("Gesammtpreis");
            model.addColumn("Bezahlt");
            model.addColumn("Material bestellzeit");
            model.addColumn("Material bestellen");
            model.addColumn("Material bestellt");
            model.addColumn("Fertigungszeit");
            model.addColumn("Fertigungsbeginn");
            model.addColumn("Fertiggestellt");
            model.addColumn("Lieferzeit");
            model.addColumn("Versenden am");
            model.addColumn("Versendet");
            model.addColumn("Beim Kunden");
            model.addColumn("Auftragerledigt");

            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/meinedb", "root", "root123");
            String sql = "SELECT * FROM db.mytable";
            Statement S = con.createStatement();
            rst = S.executeQuery(sql);

            while (rst.next()) {
                nummer++;
                model.addRow(new Object[]{
                    rst.getInt(2),
                    rst.getString(3),
                    rst.getString(4),
                    rst.getString(5),
                    rst.getString(6),
                    rst.getString(7),
                    rst.getString(8),
                    rst.getInt(9),
                    rst.getDouble(10),
                    rst.getDouble(11),
                    rst.getBoolean(12),
                    rst.getInt(13),
                    rst.getString(14),
                    rst.getBoolean(15),
                    rst.getInt(16),
                    rst.getString(17),
                    rst.getBoolean(18),
                    rst.getInt(19),
                    rst.getString(20),
                    rst.getBoolean(21),
                    rst.getString(22),
                    rst.getBoolean(23)

                });

            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(this, ex.getMessage());
        }

        return model;
    }
 

Robat

Top Contributor
Wartet dein Programm irgendwo auf eine Eingabe oder braucht es lange um die Daten aus der DB zu laden?
Alles was vorm anzeigen der GUI passiert ist hier interessant
 

max514

Bekanntes Mitglied
Das ist die Methode der Klasse Datenbank
Java:
public JTable DatenbankLaden (JTable jTable){
        DefaultTableModel dtm = new DefaultTableModel() {
            @Override
            public Class getColumnClass(int column) {
                for (int row = 0; row < getRowCount(); row++) {
                    Object o = getValueAt(row, column);

                    if (o != null) {
                        return o.getClass();
                    }
                }

                return Object.class;
            }

        };

        try {

            populate(dtm);
            jTable.setModel(dtm);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return jTable;
    }

    private TableModel populate(DefaultTableModel model) {

        try {

            model.addColumn("Auftragsnummer");
            model.addColumn("Auftragsdatum");
            model.addColumn("Auftraggeber");
            model.addColumn("Telefon");
            model.addColumn("E-mail");
            model.addColumn("Lieferadresse");
            model.addColumn("Beschreibung");
            model.addColumn("Menge");
            model.addColumn("Einzelpreis");
            model.addColumn("Gesammtpreis");
            model.addColumn("Bezahlt");
            model.addColumn("Material bestellzeit");
            model.addColumn("Material bestellen");
            model.addColumn("Material bestellt");
            model.addColumn("Fertigungszeit");
            model.addColumn("Fertigungsbeginn");
            model.addColumn("Fertiggestellt");
            model.addColumn("Lieferzeit");
            model.addColumn("Versenden am");
            model.addColumn("Versendet");
            model.addColumn("Beim Kunden");
            model.addColumn("Auftragerledigt");

            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/meinedb", "root", "root123");
            String sql = "SELECT * FROM db.mytable";
            Statement S = con.createStatement();
            rst = S.executeQuery(sql);

            while (rst.next()) {
                nummer++;
                model.addRow(new Object[]{
                    rst.getInt(2),
                    rst.getString(3),
                    rst.getString(4),
                    rst.getString(5),
                    rst.getString(6),
                    rst.getString(7),
                    rst.getString(8),
                    rst.getInt(9),
                    rst.getDouble(10),
                    rst.getDouble(11),
                    rst.getBoolean(12),
                    rst.getInt(13),
                    rst.getString(14),
                    rst.getBoolean(15),
                    rst.getInt(16),
                    rst.getString(17),
                    rst.getBoolean(18),
                    rst.getInt(19),
                    rst.getString(20),
                    rst.getBoolean(21),
                    rst.getString(22),
                    rst.getBoolean(23)

                });

            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
       
        return model;
    }
so ruf ich sie auf
Code:
public MainWindow() {
        initComponents();
      Datenbank d = new Datenbank();
        jTable = d.DatenbankLaden(jTable);
//        datenbankLaden();
        jTable.setAutoCreateRowSorter(true);

    }
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Als erstes würde ich mal sicherheitshalber noch ein e.printStackTrace() an den Anfang der catch-Blöcke stellen. Und dann würde ich - Du nimmst ja NetBeans her - einfach mal mit dem Debugger durchgehen. Haltepunkt setzen, Debug project aufrufen und dann per Einzel- bzw. Prozedurschritt durch die Anwendung gehen.
 

max514

Bekanntes Mitglied
ja hab an allen wichtigen stellen breakpoints gesetzt, die printStackTrace gesetzt usw. aber es passiert das selbe wie bei run
 

JCODA

Top Contributor
Ok, um mal von dem Debugger wegzukommen, setz mal System.out.prints an wichtige Stellen, und schaue wo es hängt.
 

max514

Bekanntes Mitglied
Java:
public JTable DatenbankLaden (JTable jTable){
        DefaultTableModel dtm = new DefaultTableModel() {
            @Override
            public Class getColumnClass(int column) {
                for (int row = 0; row < getRowCount(); row++) {
                    Object o = getValueAt(row, column);

                    if (o != null) {
                        return o.getClass();
                    }
                }

                return Object.class;
            }

        };

        try {

            populate(dtm);
            jTable.setModel(dtm);

        } catch (Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "nein");
        }
        return jTable;
    }

    private TableModel populate(DefaultTableModel model) {

        try {

            model.addColumn("Auftragsnummer");
            model.addColumn("Auftragsdatum");
            model.addColumn("Auftraggeber");
            model.addColumn("Telefon");
            model.addColumn("E-mail");
            model.addColumn("Lieferadresse");
            model.addColumn("Beschreibung");
            model.addColumn("Menge");
            model.addColumn("Einzelpreis");
            model.addColumn("Gesammtpreis");
            model.addColumn("Bezahlt");
            model.addColumn("Material bestellzeit");
            model.addColumn("Material bestellen");
            model.addColumn("Material bestellt");
            model.addColumn("Fertigungszeit");
            model.addColumn("Fertigungsbeginn");
            model.addColumn("Fertiggestellt");
            model.addColumn("Lieferzeit");
            model.addColumn("Versenden am");
            model.addColumn("Versendet");
            model.addColumn("Beim Kunden");
            model.addColumn("Auftragerledigt");

            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/meinedb", "root", "root123");
            String sql = "SELECT * FROM db.mytable";
            Statement S = con.createStatement();
            rst = S.executeQuery(sql);

            while (rst.next()) {
                nummer++;
                model.addRow(new Object[]{
                    rst.getInt(2),
                    rst.getString(3),
                    rst.getString(4),
                    rst.getString(5),
                    rst.getString(6),
                    rst.getString(7),
                    rst.getString(8),
                    rst.getInt(9),
                    rst.getDouble(10),
                    rst.getDouble(11),
                    rst.getBoolean(12),
                    rst.getInt(13),
                    rst.getString(14),
                    rst.getBoolean(15),
                    rst.getInt(16),
                    rst.getString(17),
                    rst.getBoolean(18),
                    rst.getInt(19),
                    rst.getString(20),
                    rst.getBoolean(21),
                    rst.getString(22),
                    rst.getBoolean(23)

                });

            }

        } catch (SQLException ex) {
             ex.printStackTrace();
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
      
        return model;
    }

beim nein im catch ? ich nehm mal an es liegt am jTable.setModel(dtm);
 
Zuletzt bearbeitet:

max514

Bekanntes Mitglied
ok jetzt kam das

debug:
Sun Mar 24 09:03:48 CET 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Sun Mar 24 09:03:48 CET 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.java.lang.NullPointerException
at Auftrags.Datenbank.DatenbankLaden(Datenbank.java:124)
at Auftrags.MainWindow.<init>(MainWindow.java:40)
at Auftrags.MainWindow$30.run(MainWindow.java:1629)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Auftrags.MainWindow.<init>(MainWindow.java:42)
at Auftrags.MainWindow$30.run(MainWindow.java:1629)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
BUILD SUCCESSFUL (total time: 44 seconds)
 

JCODA

Top Contributor
also wenn ich es richtig verstanden habe ... du hast den code
Java:
initComponents();
Datenbank d = new Datenbank();
jTable = d.DatenbankLaden(jTable);


initialisiert du in initComponents() auch tatsächlich die jTable? Ich vermute diese jTable ist null.
 

max514

Bekanntes Mitglied
Ah danke ich habs hinbekommen ich hab die methode in defaulttablemodel umgeändert und den JTable erst im mainWindow gesetzt
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
J JTable mit Daten aus Datenbank füllen Java Basics - Anfänger-Themen 3
S JTable aktualisieren (nach Datenbank updade) Java Basics - Anfänger-Themen 14
J JTable in die Datenbank Java Basics - Anfänger-Themen 5
G JTable (Werte aus der Datenbank) Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
E Datenbank Spalte zusammenzählen Java Basics - Anfänger-Themen 2
R Datenbank Java Basics - Anfänger-Themen 1
I API Key´s in der Datenbank decrypt / encrypten? Java Basics - Anfänger-Themen 23
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
M Datenbank oder Textdatei? Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
M Von der Datenbank zum Textfield Java Basics - Anfänger-Themen 16
R Best Practice Logik in der Datenbank oder in Java? Java Basics - Anfänger-Themen 3
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
B Datenbank: Entity mit vielen Referenzen? Ansatz so ok? Java Basics - Anfänger-Themen 8
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
M Datenbank verbindung Java Basics - Anfänger-Themen 19
J Java Verbindung mit mysql Datenbank Java Basics - Anfänger-Themen 3
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
R Input/Output Verbindung mit mySql-Datenbank Java Basics - Anfänger-Themen 9
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
N (Java) Regristrierung und Login System mit einer Datenbank Java Basics - Anfänger-Themen 5
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
J Mit JSF Formular in Datenbank schreiben Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Verschiede Aktionen der Datenbank getrennt durchführen Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Datenbank wird nicht erstellt Java Basics - Anfänger-Themen 31
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
B Schreiben von zu vielen Einträgen in einer Datenbank Java Basics - Anfänger-Themen 9
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
N Datenbank mit GUI verbinden - Wie? Java Basics - Anfänger-Themen 5
1 Datenbank in Java Java Basics - Anfänger-Themen 1
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
J Bücher Datenbank Java Basics - Anfänger-Themen 5
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
R Erstversuch Datenbank Java Basics - Anfänger-Themen 6
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
A Erste Schritte Verbindung zu MySQL Datenbank herstellen Java Basics - Anfänger-Themen 7
T Sql Datenbank - variable übergeben? Java Basics - Anfänger-Themen 8
C Passwörter möglichst sicher in Datenbank speichern Java Basics - Anfänger-Themen 18
W Erste Schritte Exceltabelle in Datenbank übertragen mittels XDEV Java Basics - Anfänger-Themen 7
J GUI mit phpMyAdmin Datenbank verbinden Java Basics - Anfänger-Themen 0
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
B Lokale Datenbank Java Java Basics - Anfänger-Themen 2
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
Todesbote Int Array mit Hibernate in Datenbank speichern. Java Basics - Anfänger-Themen 2
U Datenbank in Java Java Basics - Anfänger-Themen 8
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
B Dateiname in Datenbank schreiben Java Basics - Anfänger-Themen 2
J fortlaufende Objekte durch Variable auswählen; Datenbank Java Basics - Anfänger-Themen 4
S ArrayList in mysql Datenbank speichern Java Basics - Anfänger-Themen 6
C Datenbank - Welche Java Basics - Anfänger-Themen 5
B Java Objektorientierte Datenbank - Assoziation Hilfe Java Basics - Anfänger-Themen 4
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
J Erste Schritte Objekte in Datenbank speichern Java Basics - Anfänger-Themen 26
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
L Erste Schritte Datenbank Zugangsdaten sicher? Java Basics - Anfänger-Themen 15
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
K Input/Output Datenbank Java Basics - Anfänger-Themen 27
M Datenbank in die Gui Java Basics - Anfänger-Themen 4
F Erfassung von PCs in eine SQLite-Datenbank über JDBC Java Basics - Anfänger-Themen 9
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
M Brauche ich ein Datenbank oder nicht? Java Basics - Anfänger-Themen 6
D JDBC Datenbank fail?! Java Basics - Anfänger-Themen 20
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
F Classpath Datenbank ... nur wo? Java Basics - Anfänger-Themen 24
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
B Personalnummer aus Datenbank Java Basics - Anfänger-Themen 3
M Welche Datenbank? Java Basics - Anfänger-Themen 5
J RadioButtonInhalt in Datenbank übergeben Java Basics - Anfänger-Themen 3
R Datenbank bei Klassenverteilung führt zu NullPointerException Java Basics - Anfänger-Themen 7
J PW von Datenbank wie abspeichern? Java Basics - Anfänger-Themen 2
F Verbindung zu MySql Datenbank Java Basics - Anfänger-Themen 4
MU5T4NG JPasswordField als Hash in Datenbank abspeichern Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
F Collections Datenbankdaten in einer Map speichern, bearbeiten, sortieren und wieder in Datenbank schreiben Java Basics - Anfänger-Themen 20
T Zugangsdaten für Datenbank in Java-Programm speichern? Java Basics - Anfänger-Themen 5
S Schnittstelle für Datenbank bzw. Dateiformat Java Basics - Anfänger-Themen 2
C ComboBoxModel mit Daten der Datenbank verändern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben