Wyświetlanie zawartości bazy danych w tabeli (JDBC)

0

Witam!
Mam problem z wyświetlaniem zawartości bazy danych w tabeli.

Funkcja pobierająca dane z bazy:

ArrayList seeZwierze() {
       connect();
       tabela="Zwierze";
       ArrayList <Zwierze> list = new ArrayList<Zwierze>();
       try {
           ResultSet res = stat.executeQuery("SELECT * FROM "+tabela);
           while(res.next()){
               String nazwa = res.getString("nazwa");
               String lacinska = res.getString("lacinska");
               String kolor = res.getString("kolor");
               int ilosc = res.getInt("ilosc");
               double cena = res.getDouble("cena");
               list.add(new Zwierze(nazwa,lacinska, kolor, ilosc, cena));
               
          }
           
           return list;
       } catch (SQLException ex) {
           Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
       }
       return null;
   }

Wyświetlenie tabelki:

 private void bZwierzetaActionPerformed(java.awt.event.ActionEvent evt) {                                           
        
        columnNames = new String[] {"Nazwa", "Nazwa Łac", "Kolor", "Ilość", "Cena"};
        ArrayList <Zwierze> ZwierzeTab = new ArrayList<Zwierze>();
        ZwierzeTab = conn.seeZwierze();
        data = new Object[ZwierzeTab.size()][5];
        for (int i = 0; i<ZwierzeTab.size(); i++){
            data[i][0] = ZwierzeTab.get(i).getName();
            data[i][1] = ZwierzeTab.get(i).getNazLac();
            data[i][2] = ZwierzeTab.get(i).getColor();
            data[i][3] = ZwierzeTab.get(i).getAmount();
            data[i][4] = ZwierzeTab.get(i).getPrice();
        }
        tabelka.setModel(new DefaultTableModel(data, columnNames));
            
    }                                          

Deklaracje:

public class Wyswietl extends javax.swing.JFrame {
    Database conn;
    Object[][] data = null;
    String[] columnNames = " ";

Co robię źle? Jeszcze niedawno swing, jak i bazy danych to był dla mnie kosmos, a teraz niewiele się zmieniło, wciąż mało wiem. Proszę o pomoc.

Nie dzieje się nic, a kompilator wyświetla:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at sklepzoologiczny.Wyswietl.bZwierzetaActionPerformed(Wyswietl.java:129)
	at sklepzoologiczny.Wyswietl.access$000(Wyswietl.java:21)
	at sklepzoologiczny.Wyswietl$1.actionPerformed(Wyswietl.java:52)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
	...

...i cała litania

NullPointerException o ile się nie mylę mówi, że mam jakiś wskaźnik pokazujący na nulla, którego później próbuję użyć. Jeśli tak, to przy pobieraniu z bazy jest jakiś błąd i nie zapisuje danych na listę.

1

Bo to co napisałeś jest bardzo brzydkie. Skoro z funkcji możesz zwrócić nulla to MUSISZ sprawdzać w miejscu gdzie z niej korzystasz czy go czasem nie zwróciła.
Pytanie tylko czemu zwracasz tego nulla? Czemu nie zwracasz zwyczajnie pustej listy?
A w logach nic nie ma? Odpaliłeś kod pod debugerem? Gdzie się wysypuje? (Jak mi napiszesz że "pod debugerem też się wysypuje", to zabije. Masz debugować z breakpointem w tej metodzie i robić step-by-step i patrzeć czy metody zwracają to czego się spodziewasz...)

1 użytkowników online, w tym zalogowanych: 0, gości: 1