# Ein Haufen Fehlermeldungen und keine Ahnung... (H2 DB mit Intellij und Scene Builder )



## Zakon (7. Dez 2020)

Hi ich versuche gerade mein H2 DB mit Intellij und Scene Builder zu verbinden.
Hier Kurz meine beiden Code Blöcke:

[CODE lang="java" title="UserDetails"]package Main;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class UserDetails {

    private final IntegerProperty Mitarbeiter_ID;
    private final StringProperty Vorname;
    private final StringProperty Nachname;
    private final IntegerProperty Firmen_ID;


    //"Bau" der "Bausteine"
    public  UserDetails(int Mitarbeiter_ID, String Vorname,String Nachname, int Firmen_ID){
        this.Mitarbeiter_ID = new SimpleIntegerProperty(Mitarbeiter_ID);
        this.Vorname = new SimpleStringProperty(Vorname);
        this.Nachname = new SimpleStringProperty(Nachname);
        this.Firmen_ID = new SimpleIntegerProperty(Firmen_ID);
    }

    public int getMitarbeiter_ID() {
        return Mitarbeiter_ID.get();
    }

    public IntegerProperty mitarbeiter_IDProperty() {
        return Mitarbeiter_ID;
    }

    public void setMitarbeiter_ID(int mitarbeiter_ID) {
        this.Mitarbeiter_ID.set(mitarbeiter_ID);
    }

    public int getFirmen_ID() {
        return Firmen_ID.get();
    }

    public IntegerProperty firmen_IDProperty() {
        return Firmen_ID;
    }

    public void setFirmen_ID(int firmen_ID) {
        this.Firmen_ID.set(firmen_ID);
    }

    public String getVorname() {
        return Vorname.get();
    }

    public StringProperty vornameProperty() {
        return Vorname;
    }

    public void setVorname(String vorname) {
        this.Vorname.set(vorname);
    }

    public String getNachname() {
        return Nachname.get();
    }

    public StringProperty nachnameProperty() {
        return Nachname;
    }

    public void setNachname(String nachname) {
        this.Nachname.set(nachname);
    }
}[/CODE]
[CODE lang="java" title="Controller"]package Main;

import java.net.URL;
import java.sql.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class Controller implements Initializable {
    @FXML
    private Label label;

    @FXML
    private TableView<UserDetails> tableUser;
    @FXML
    private TableColumn<UserDetails,Integer> columnMitarbeiter_ID;
    private TableColumn<UserDetails,String> columnVorname;
    private TableColumn<UserDetails,String> columnNachname;
    private TableColumn<UserDetails,Integer> columnFirmen_ID;

    @FXML
    private Button btnLoad;

    private ObservableList<UserDetails> data;
    private DBConnection dc;

    @Override
    public void initialize(URL url, ResourceBundle rb){
        dc = new DBConnection();
    }

    @FXML
    private void loadDataFromDatabase(ActionEvent event){
        try{
            Connection conn = dc.Connect();
            data = FXCollections.observableArrayList();
            ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM Mitarbeiter");
            while(rs.next()){
                data.add(new UserDetails(rs.getInt(1),rs.getString(2),rs.getString(3),rs.getInt(4)));
            }
        }
        catch(SQLException e){
            System.out.println("Error "+e);
        }

        columnMitarbeiter_ID.setCellValueFactory(new PropertyValueFactory<>("Mitarbeiter_ID"));
        columnVorname.setCellValueFactory(new PropertyValueFactory<>("Vorname"));
        columnNachname.setCellValueFactory(new PropertyValueFactory<>("Nachname"));
        columnFirmen_ID.setCellValueFactory(new PropertyValueFactory<>("Firmen_ID"));

        tableUser.setItems(null);
        tableUser.setItems(data);
    }
}[/CODE]

Das sind denke die beiden Wichtigen Code Blöcke die ich geschrieben habe. Die main ist ganz normal die selbständig erstellte von Intellij nur halt den namen in der Main für die fxml habe ich geändert.

Meine GUI öffnet sich auch und meine DB ist auch mit Intellij verbunden.

Problem nur wenn ich auf meinen "Lade" Button drücke bekomme ich ein Haufen von Fehlermeldungen.

In meiner Datenbank gibt es 4 Tabellen jedoch habe ich hier nur versucht mit einer zu Arbeiten und zwar die Miarbeiter Tabelle.

Wäre sehr dankbar wenn mir jemand helfen könnte.

Nun hier die Fehlermeldungen (bitte nicht vom Stuhl fallen  ):

SEVERE: null
java.lang.ClassNotFoundException: org.h2.Driver
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:377)
    at Main.DBConnection.Connect(DBConnection.java:17)
    at Main.Controller.loadDataFromDatabase(Controller.java:45)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
    at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
    at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
    at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
    at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1729)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8886)
    at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
    at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
    at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
    at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1851)
    at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
    at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
    at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
    at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:832)

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1862)
    at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1729)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8886)
    at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
    at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
    at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
    at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1851)
    at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
    at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
    at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
    at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
    at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
    at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
    at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
    ... 46 more
Caused by: java.lang.NullPointerException: Cannot invoke "java.sql.Connection.createStatement()" because "conn" is null
    at Main.Controller.loadDataFromDatabase(Controller.java:47)
    ... 57 more


----------



## Zakon (7. Dez 2020)

EDIT:
Und Entschuldigung für so viel Text, nur denke ich das sind alles wichtige Informationen  😅


----------



## LimDul (7. Dez 2020)

Ich kenn zwar IntelliJ nicht - aber irgendwo muss man beim ausführen des Programms der H2-Treiber in den Classpath ergänzt werden. Wie man das genau in IntelliJ macht, weiß ich nicht.


----------



## Zakon (7. Dez 2020)

LimDul hat gesagt.:


> Ich kenn zwar IntelliJ nicht - aber irgendwo muss man beim ausführen des Programms der H2-Treiber in den Classpath ergänzt werden. Wie man das genau in IntelliJ macht, weiß ich nicht.


[CODE lang="java" title="DBConnection"]public class DBConnection {

    public Connection Connect() {
        try {
            String url = "jdbc:h2:~/test";
            String user = "sa";
            String password ="";

            Class.forName("org.h2.Driver");
            java.sql.Connection conn = DriverManager.getConnection(url, user, password);

            return conn;

        } catch (ClassNotFoundException | SQLException e) {
            System.out.println("Error "+e);
        }

        return null;
    }
}
[/CODE]
In meiner DBConnection Class habe ich das gemacht und auch in der Einstellung bein Einrichten der Datenbank.
Ich denke das wird es nicht sein aber Danke


----------



## LimDul (7. Dez 2020)

Das Problem ist, da genau die Zeile 9 fehl schlägt, weil das H2-Jar nicht im Classpath eingebunden ist.


----------



## kneitzel (7. Dez 2020)

Vermutlich hast Du den H2 Treiber nur in IntelliJ hinterlegt aber nicht als Abhängigkeit in Deinem Projekt.

Nutzt Du ein Build Tool wie Maven oder Gradle? Oder ist das ein direktes Java Projekt in IntelliJ?

Bei ersterem muss die H2 Dependency mit angegeben werden. Bei letzterem musst Du in IntelliJ die H2 Abhängigkeit bei den Libraries hinzu fügen.


----------



## Zakon (7. Dez 2020)

kneitzel hat gesagt.:


> Vermutlich hast Du den H2 Treiber nur in IntelliJ hinterlegt aber nicht als Abhängigkeit in Deinem Projekt.
> 
> Nutzt Du ein Build Tool wie Maven oder Gradle? Oder ist das ein direktes Java Projekt in IntelliJ?
> 
> Bei ersterem muss die H2 Dependency mit angegeben werden. Bei letzterem musst Du in IntelliJ die H2 Abhängigkeit bei den Libraries hinzu fügen.


Ich habe die Lib in den Einstellungen auch Hinzugefügt meines Wissens auch korrekt 🤔 Da ich am anfang als die Lib noch nicht hinzugefügt war Logischwerweise nur Rote  Klassen Methoden usw hatte.  Und nein ein BuildTool wird nicht benutzt


----------



## mrBrown (7. Dez 2020)

Zakon hat gesagt.:


> Ich habe die Lib in den Einstellungen auch Hinzugefügt meines Wissens auch korrekt 🤔 Da ich am anfang als die Lib noch nicht hinzugefügt war Logischwerweise nur Rote Klassen Methoden usw hatte. Und nein ein BuildTool wird nicht benutzt


Du musst auch die H2-lib hinzufügen, nicht nur die JavaFX-Lib


----------



## kneitzel (7. Dez 2020)

Da hast Du JavaFX hinzugefügt. Aber wenn Du die H2 Datenbank nutzen willst, dann brauchst Du auch die Klassen vom H2.

Und die fehlen wie diese Zeile klar zeigt:
java.lang.ClassNotFoundException: org.h2.Driver


----------



## Zakon (7. Dez 2020)

Ok danke dann wären die Häfte der fehlermeldungen schonmal weg  

Leider ist gerade als Anfänger sehr schwer die Fehlermeldungen zu verstehen und richtig zu Interpretieren aber ich hoffe das kommt mit der Zeit.

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1862)
    at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1729)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8886)
    at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
    at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
    at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
    at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
    at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
    at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
    at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
    at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1851)
    at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
    at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
    at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
    at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
    at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
    at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
    at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
    at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
    ... 46 more
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableColumn.setCellValueFactory(javafx.util.Callback)" because "this.columnVorname" is null
    at Main.Controller.loadDataFromDatabase(Controller.java:57)
    ... 57 more


----------



## kneitzel (7. Dez 2020)

In so einem Stacktrace immer ganz anch unten gehen. Die unterste Exception ist in der Regel die, die wichtig / interessant ist.

Hintergrund ist, dass diese Exception mehrfach an diversen Stellen aufschlägt, diese Stellen stellen alle jeweils fest: Da können wir nichts machen und geben es dann weiter.... 

In Deinem Fall ist das Problem also:
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableColumn.setCellValueFactory(javafx.util.Callback)" because "this.columnVorname" is null
at Main.Controller.loadDataFromDatabase(Controller.java:57)

Also mal in Controller Zeile 57 schauen. Da machst Du etwas, das sich daran stört, dass columnVorname null ist.


----------



## mrBrown (7. Dez 2020)

Zakon hat gesagt.:


> Leider ist gerade als Anfänger sehr schwer die Fehlermeldungen zu verstehen und richtig zu Interpretieren aber ich hoffe das kommt mit der Zeit.



Der relevante Teil steht meist ganz unten:


Zakon hat gesagt.:


> ```
> Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.TableColumn.setCellValueFactory(javafx.util.Callback)" because "this.columnVorname" is null
> ```


----------



## Zakon (7. Dez 2020)

kneitzel hat gesagt.:


> In so einem Stacktrace immer ganz anch unten gehen. Die unterste Exception ist in der Regel die, die wichtig / interessant ist.
> 
> Hintergrund ist, dass diese Exception mehrfach an diversen Stellen aufschlägt, diese Stellen stellen alle jeweils fest: Da können wir nichts machen und geben es dann weiter....
> 
> ...





mrBrown hat gesagt.:


> Der relevante Teil steht meist ganz unten:


Ich danke euch. Ich werde mir das ganze nochmal genau angucken und hoffe mir geht dann ein Licht auf


----------



## Zakon (7. Dez 2020)

Kurzes Update:
Meine column sind nicht mehr Null dafür jetzt mein "conn".
Ich danke euch schonmal das ihr mir so geholfen habt, sonst wäre ich nicht drauf gekommen  😁


----------



## kneitzel (7. Dez 2020)

Wenn conn null ist, dann klappt etwas mit dem Aufbau der Datenbankverbindung nicht.

Da müsstest Du mal schauen, was da mit ~/test ist - das hattest Du als Ort für die Datenbank angegeben. Konnte er test in Deinem Home Verzeichnis anlegen? Evtl. liegt es daran, dass er das nicht anlegen konnte? Das ist aber nur eine erste Idee - an der Stelle müsstest Du einmal nachsehen und ggf. den Connection String anpassen.


----------



## Zakon (8. Dez 2020)

kneitzel hat gesagt.:


> Wenn conn null ist, dann klappt etwas mit dem Aufbau der Datenbankverbindung nicht.
> 
> Da müsstest Du mal schauen, was da mit ~/test ist - das hattest Du als Ort für die Datenbank angegeben. Konnte er test in Deinem Home Verzeichnis anlegen? Evtl. liegt es daran, dass er das nicht anlegen konnte? Das ist aber nur eine erste Idee - an der Stelle müsstest Du einmal nachsehen und ggf. den Connection String anpassen.


Danke nochmal für die hilfe  Laut meinen erkenntnissen war die Conn null weil ich sie nie geschloßen habe und deswegen nach ein paar mal kein "Platz" mehr hatte  🤔  Naja jetzt funktioniert es 😁


----------



## mrBrown (8. Dez 2020)

Zakon hat gesagt.:


> Laut meinen erkenntnissen war die Conn null weil ich sie nie geschloßen habe und deswegen nach ein paar mal kein "Platz" mehr hatte 🤔


Deshlab *immer* try-with-resources nutzen


----------

