Daten aus einer Accessdatenbank in einer JTable ausgeben

Momentan habe ich das Problem, das die JTable nur die von mir festgelegten Reiter ausgeben will. Die Verbindung zur Datenbank habe ich mit Hilfe des UCanAccess-Treibers aufgebaut.


package db;

import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;




public class gui extends javax.swing.JFrame {

    Connection con;
    Statement st;
    ResultSet rs;
    
    
    
    public gui() {
        initComponents();
        

         
        tabellevalue();
        
        
        
        
    }

    
    
    
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        tabellevalue = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        tabellevalue.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        jScrollPane1.setViewportView(tabellevalue);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 925, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 522, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

   
    
    
    private void tabellevalue ()
    {
        
        try{
        Connection con = DriverManager.getConnection(
        "jdbc:ucanaccess://C:/GFSDB1.mdb");
        Vector col;
            col = new Vector();
        Vector dat;
            dat = new Vector();
        col.add("Schülernummer");
        col.add("Vorname");
        col.add("Nachname");
        rs = con.createStatement().executeQuery("SELECT * FROM [Adressen]");
        dat.clear();
        
        
        while(rs.next()){
        
            Vector v = new Vector();
            v.add(rs.getString("ID").trim());
            v.add(rs.getString("Vorname").trim());
            v.add(rs.getString("Nachname").trim());

            
        }
        tabellevalue.setModel(new DefaultTableModel(dat,col));
    }
    catch(Exception ex){
         JOptionPane.showMessageDialog(null, ex.toString());
    
    }
    }
    
    public static void main(String args[]) {
        
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Windows Classic".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new gui().setVisible(true);
            }
        });
    }

   
    // Variables declaration - do not modify                     
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable tabellevalue;
    // End of variables declaration                   
}

Ein bestimmter Fehler wird mir nicht ausgegeben. Es werden mir lediglich nicht die Daten aus der Datenbank angezeigt.

Würde sehr über eure Hilfe freuen.

grundsätzlicher Hauptfehler, am wichtigsten bei dieser Sache zu lernen:
unnötig komplizierte Verknüpfung von zwei komplizierten Dingen,

schreibe dir lieber eine Methode Vector loadData(),
gib dann dieses Ergebnis mit Schleife und System.out.println() aus
-> exakt feststellen ob das Laden funktioniert, dann musst du nicht mehr drüber nachdenken,
kannst auch zur DB-Schonung temporär Dummy-Daten im Programm verwenden (sofern dabei kein Fehler eingebaut…)

danach dann als separaten zweiten Schritt mit Daten, ob aus DB oder (besonders fürs Forum besser) Dummy,
das TableModel aktualisieren

egal welcher Schritt nicht geht, 1 oder 2, könntest du jeweils für sich das Forum fragen, beim ersten würde die GUI nicht interessieren,
DB-Problem oder Ladecode,
beim zweiten ginge es nur um GUI-Bedienung, DB wäre vollkommen auszuklammern (mit Dummy-Daten)

theoretisch ist natürlich auch möglich, dass die beiden Teilschritte für sich funktionieren, zusammen dann aber doch nicht mehr,
aber dafür braucht es schon Pech, normalerweise zu vermeiden


nach der Lehrstunde vermuteter Fehler:
du liest alle Daten korrekt in jeweils einen Vector v ein, fügst v aber nicht zu dat hinzu, dat ist leer, ‘dat ist nich jut’