Moin Leute,
ich sitze seit einer geraumen Zeit an folgendem Problem: Ich möchte ein Rechnungsprogramm schreiben, welches mit einer Datenbank verknüpft ist und damit Rechnungen erstellen von Aufträgen. Mein Problem ist, dass ich jedesmal folgende Fehlermeldung bekomme, sobald ich entsprechende Daten in die DB speichern lassen möchte.
Fehlermeldung:
FXMLController:
Rechnung:
Dachte erst es lieg an den Konstruktoren, aber habe dort keine Fehler finden können. Wäre nett, wenn sich jemand findet, der eventuell eine Lösung hat .
ich sitze seit einer geraumen Zeit an folgendem Problem: Ich möchte ein Rechnungsprogramm schreiben, welches mit einer Datenbank verknüpft ist und damit Rechnungen erstellen von Aufträgen. Mein Problem ist, dass ich jedesmal folgende Fehlermeldung bekomme, sobald ich entsprechende Daten in die DB speichern lassen möchte.
Fehlermeldung:
Java:
Verbindung wird aufgebaut...Nein, leider nicht!
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(Unknown Source)
at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
at javafx.graphics/javafx.scene.Node.fireEvent(Unknown Source)
at javafx.controls/javafx.scene.control.Button.fire(Unknown Source)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(Unknown Source)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Unknown Source)
at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1300(Unknown Source)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Unknown Source)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Unknown Source)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(Unknown Source)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.reflect.Trampoline.invoke(Unknown Source)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(Unknown Source)
at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(Unknown Source)
... 48 more
Caused by: DB.DBException: Rechnung konnte nicht erstellt werden
at Ansicht.FXMLController.rechnungspeichern(FXMLController.java:99)
... 58 more
Java:
package Ansicht;
import java.io.IOException;
import DB.DBException;
import DB.DBInterface;
import Daten.Rechnung;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.stage.Stage;
public class FXMLController {
DBInterface db;
@FXML private Button button;
// FXML Elemente für Rechnungserstellung deklarieren
@FXML private TextArea taRechnungsnummer;
@FXML private TextArea taAuftragsnummer;
@FXML private TextArea taRechnungsnummer2;
@FXML private TextArea taRechnungsdatum;
@FXML private TextArea taKundennummer;
@FXML private TextArea taName;
@FXML private TextArea taGesamtbetrag;
@FXML private TextArea taAuftragsnummer2;
@FXML private TextArea taAuftragsdatum;
// Methoden für Szenenwechsel der einzelnen FXML Seiten
public void Szenenwechsel1(ActionEvent event) throws IOException
{
Parent erstellungParent = FXMLLoader.load(getClass().getResource("R.Erstellung.fxml"));
Scene erstellungScene = new Scene (erstellungParent);
Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
window.setScene(erstellungScene);
window.show();
}
public void Szenenwechsel2(ActionEvent event) throws IOException
{
Parent löschenParent = FXMLLoader.load(getClass().getResource("R.Löschen.fxml"));
Scene löschenScene = new Scene (löschenParent);
Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
window.setScene(löschenScene);
window.show();
}
public void Abbruch(ActionEvent event) throws IOException
{
Parent abbrechenParent = FXMLLoader.load(getClass().getResource("Startseite.fxml"));
Scene abbrechenScene = new Scene (abbrechenParent);
Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
window.setScene(abbrechenScene);
window.show();
}
// Methode zum speichern einer Rechnung
@FXML
protected void rechnungspeichern(){
try {
try {
db = DBInterface.getInstance();
db.openConnection("string", "string"); //DBInterface Methode zum Herstellen einer DB-Verbindung
System.out.println("Es hat funktioniert!");
}
catch(Exception ex){
System.out.println("Nein, leider nicht!");
}
//holen der einzelnen Inhalte der TextAreas für die Rechnung
String a = taRechnungsnummer.getText();
String b = taAuftragsnummer.getText();
Rechnung r = new Rechnung(a,b);
db.addRechnung(r); //DB Methode zum hinzufügen einer Rechnung
db.closeConnection(); // DB Methode zum Schließen der Db-Verbindung
//die TextAreas werden wieder gecleart
taRechnungsnummer.clear();
taAuftragsnummer.clear();
}
catch(Exception ex){
throw new DBException("Rechnung konnte nicht erstellt werden");
}
}
}
Rechnung:
Java:
package Daten;
public class Rechnung {
//Kundennummer - identifiziert Rechnung eindeutig
private String rechnungsnummer;
//-------------nähere Infos über die Kunden (Nachname)-----------------------
private String auftragsnummer;
//Konstruktoren
public Rechnung (String rechnungsnummer, String auftragsnummer) {
this.rechnungsnummer = rechnungsnummer;
this.auftragsnummer = auftragsnummer;
}
public Rechnung (String rechnungsnummer) {
this.rechnungsnummer = rechnungsnummer;
}
public Rechnung (){
}
//GETTER UND SETTER
public String getRechnungsnummer() {
return rechnungsnummer;
}
public void setRechnungsnummer(String rechnungsnummer) {
this.rechnungsnummer = rechnungsnummer;
}
public String getAuftragsnummer() {
return auftragsnummer;
}
public void setAuftragsnummer(String auftragsnummer) {
this.auftragsnummer = auftragsnummer;
}
}
Dachte erst es lieg an den Konstruktoren, aber habe dort keine Fehler finden können. Wäre nett, wenn sich jemand findet, der eventuell eine Lösung hat .
Zuletzt bearbeitet von einem Moderator: