Datum aus Swing in MySQL DB speichern

didi577

Bekanntes Mitglied
Hi.
Ich lerne gerafe meiner erste Programmiersprache -JAVA. Bei meinem ersten Praxisprojekt stehe ich vor folgendem Problem:
in einer GUI habe ich ein Datumsfeld:

Java:
spinDatum = new JSpinner(new SpinnerDateModel (new Date(), null, null, Calendar.MONTH));
spinDatum.setEditor(new JSpinner.DateEditor(spinDatum, "yyyy-MM-dd"));

das möchte ich einer MySQL DB speichern:

Java:
public void actionPerformed(ActionEvent e) {
   mysql.speichern(boxKurs.getSelectedItem(),boxDozent.getSelectedItem(),boxOrt.getSelectedItem(),spinDatum.getModel(),
}

public int speichern(Object boxKurs, Object boxDozent, Object boxOrt, Object spinDatum,
   ...
   return st.executeUpdate("INSERT INTO fragen(kurs,dozent,ort,datum,
   ("datum" heißt die Spalte in der DB und ist vom Datentyp "Date")
   ...VALUES ('"+boxKurs+"','"+boxDozent+"','"+boxOrt+"','"+spinDatum+"',....

Wenn ich in der GUI auf Speichern klicke wird das Datum nicht in der DB gespeichert. Auch keine anderen Spalten. Wenn ich alle Befehle zum Speichern das Datums entferne werden die anderen Spalten gespeichert.

Was mache ich hier falsch? Bin bei Google in diesem Fall nicht fündig geworden. Danke im voraus.
 
Zuletzt bearbeitet von einem Moderator:

didi577

Bekanntes Mitglied
ja:
Java:
try {
   Statement st = (Statement) con.createStatement();
   return st.executeUpdate("INSERT INTO fragen(kurs,dozent,ort,datum)  VALUES ('"+boxKurs+"','"+boxDozent+"','"+boxOrt+"','"+spinDatum+"','";
} catch (SQLException e) {
   return 0;
}
 
Zuletzt bearbeitet von einem Moderator:

mrBrown

Super-Moderator
Mitarbeiter
Da ist dein Fehler.
executeUpdate schlägt fehl und wirft eine Exception, die ignorierst du aber.
Anstatt die zu ignorieren und 0 zurückzugeben solltest du sie wenigstens ausgeben, damit du die Fehlermeldung siehst.
 

didi577

Bekanntes Mitglied
danke für die schnelle Rückmeldung und für die Hinweise

habe jetzt den Fehler jetzt in der Konsole ausgegeben:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: 'javax.swing.SpinnerDateModel@3d05be84' for column 'datum' at row 1

kannst du mir sagen wo ich im Spinner etwas ändern muss?
 

didi577

Bekanntes Mitglied
Java:
spinDatum.getValue()
gibt mir
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: 'Wed Dec 07 13:12:15 CET 2016' for column 'datum' at row 1
als Fehler zurück. Ich erwarte aber YY-MM-DD so wie es der MySQL datatyp DATE beschreibt ???
 

didi577

Bekanntes Mitglied
ich habe im Spinner doch schon ein Format vorgegeben
Java:
spinDatum.setEditor(new JSpinner.DateEditor(spinDatum, "yyyy-MM-dd"));
warum gibt er als Wert 'Wed Dec 07 13:12:15 CET 2016' aus? das Format aus dem Spinner wird ja auch so in der GUI richtig angezeigt.
hm...bin Anfänger, komme mit dem ganzen Datumsthema noch nicht klar
kann mir ein Experte bei der Lösung meines Problems helfen?
 

Joose

Top Contributor
Das Format welches du angegeben hast dient der Komponente für die Anzeige.
Intern handelt es sich trotzdem um ein Date Objekt, sprich wenn du im Code dann mit einem bestimmten Format weiterarbeiten willst musst du es im Code nochmals formatieren.
 

didi577

Bekanntes Mitglied
Das Format welches du angegeben hast dient der Komponente für die Anzeige.
Intern handelt es sich trotzdem um ein Date Objekt, sprich wenn du im Code dann mit einem bestimmten Format weiterarbeiten willst musst du es im Code nochmals formatieren.

ok...ich bekomme es nicht hin und schmeiße gleich mein Notebook aus dem Fenster...schreiii
Wie kann ich das Date Objekt im Spinner formatieren damit ich es als Date in MySQL speichern kann (YYY.MM.DD) ???

Danke schon mal für eure Hilfe!!!
 

Thallius

Top Contributor
Gar nicht.

Der Spinner hat mit dem SQL nichts aber auch gar nichts zu tun.

Der Spinner benutzt ein Java Date object und du gibst dem Spinner an in welchem Format er dieses anzeigen soll.

Deshalb gibt dir der Spinner aber nicht dieses Format zurück wenn du nach dem Datum fragst sondern er gibt dir wieder das Date object.

Wenn du dieses nun in SQL speichern willst, dann Must du das wieder ins SQL Format wandeln. Im Normalfall mit einem SimpleDateFormatter

Gruß

Claus
 

didi577

Bekanntes Mitglied
ich habe vor die Wandlung vorzunehmen wenn ich auf "Speichern" klicke.

Kannst du mir das ein Code Beispiel senden? Ich komme einfach nicht weiter
 

didi577

Bekanntes Mitglied
ups... hätte ich gleich senden können:
Java:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
       simpleDateFormat.format(spinDatum);
       mysql.speichern(boxKurs.getSelectedItem(),boxDozent.getSelectedItem(),boxOrt.getSelectedItem(),spinDatum.getValue()...

zumindest startet das Programm wieder...aber mit Fehler nach "Speichern"

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Date
 

didi577

Bekanntes Mitglied
also, ich bin kein Code Schmarotzer, ich schlage mich ganz wacker durch die neue Proggi Welt, das Datum ist meine größte Hürde bis dato

ich habe bei stackoverflow geschaut und es in meinen Code gebaut:
Java:
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(spinDatum.getValue()));
       mysql.speichern(boxKurs.getSelectedItem(),boxDozent.getSelectedItem(),boxOrt.getSelectedItem(),spinDatum.getValue(),tfC14.getText(),tfD4.getText(),tfD5.getText());
ich denke ich muss "new Simple..." anstatt in der sysout in meine mysql.speichern Methode bekommen. da steht ja bislang
Java:
spinDatum.getValue()
was nur den Timestamp liefert

das ist meine speichern Methode
Java:
public int speichern(Object boxKurs, Object boxDozent, Object boxOrt, Object spinDatum, String tfC14, String tfD4, String tfD5) {
     
     
     
     try {
       
       Statement st = (Statement) con.createStatement();
       return st.executeUpdate("INSERT INTO fragen(kurs,dozent,ort,datum,c1_txt,d4_txt,d5_txt)  VALUES ('"+boxKurs+"','"+boxDozent+"','"+boxOrt+"','"+spinDatum+"','"+tfC14+"','"+tfD4+"','"+tfD5+"')");
       
       
     } catch (SQLException e) {
       System.out.println(e);
       return 0;
     }     
   }

wat nu?
 
X

Xyz1

Gast

Willst du meine wahrheitsgemäße Antwort hören? Diese Aufgabenstellung stellt zu hohe Anforderungen an die Lösungskompetenzen eines Anfängers und übersteigt dessen Fähigkeiten bei Weitem.

Ich würd vorschlagen, i-etwas mit Konsolenein- und/oder Ausgabe zu machen. :)

Zum Bleistift: Geben Sie das Ergebnis der Berechnung 4 + 3 auf der Konsole aus - oder Ähnliches.
 

didi577

Bekanntes Mitglied
ich glaube ich habe es :)
Java:
SimpleDateFormat formater = new SimpleDateFormat("yyyy/MM/dd");
       String spinnerValue = formater.format(spinDatum.getValue());
       mysql.speichern(boxKurs.getSelectedItem(),boxDozent.getSelectedItem(),boxOrt.getSelectedItem(),spinnerValue);
       verwerfen();

Das Datum wird jetzt wie gewollt yyyy.MM.dd in der MySQL gespeichert :)

Vielen vielen Dank an alle die hier Geduld bewiesen haben
 
X

Xyz1

Gast
Java:
int speichern(Object boxKurs, Object boxDozent, Object boxOrt, Object spinDatum, String tfC14, String tfD4, String tfD5) {

Du wirfst da Äpfel und Birnen durcheinander. Einige dich auf String oder nicht auf Object als Supertyp als Parametertypen der Methode. :)
 

didi577

Bekanntes Mitglied
jepp. das sieht auch komisch aus. aber es funktioniert...
was schlägst du vor? ich speicher mit dieser Methode verschiedene Werte aus Widgets (jcombobox,jspinner,jbuttongroup,jtextfield) in je eine Zeile einer mysql Tabelle
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
T Datum als Variable wert Java Basics - Anfänger-Themen 4
T Datum in die als Variabelwert Java Basics - Anfänger-Themen 5
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
J Datum ermitteln ? Java Basics - Anfänger-Themen 14
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Datum und Uhrzeit Java Basics - Anfänger-Themen 4
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
B Datum in dieser Range SQL? Java Basics - Anfänger-Themen 3
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
D Kontoauszüge von bestimmtem Datum Java Basics - Anfänger-Themen 35
B Termine (Datum erstellen), Abhängig von Intervallen Java Basics - Anfänger-Themen 0
A Nächstes Datum ausgeben, if-Schleife unklar Java Basics - Anfänger-Themen 6
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Datum umformatieren Java Basics - Anfänger-Themen 2
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
D Projekte + Datum + löschen Java Basics - Anfänger-Themen 11
M Datum serialisieren Java Basics - Anfänger-Themen 1
S Datum einlesen Java Basics - Anfänger-Themen 1
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
K Methoden Datum parsen Java Basics - Anfänger-Themen 16
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
MiMa Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
O Datum-Werte gruppieren Java Basics - Anfänger-Themen 6
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Kontoauszug mit Datum ausgeben Java Basics - Anfänger-Themen 4
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
T Datum mit einem Datums-Bereich vergleichen Java Basics - Anfänger-Themen 10
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
P Wieviele Tage seit dem Datum vergangen sind Java Basics - Anfänger-Themen 5
P Liste nach Datum sortieren Java Basics - Anfänger-Themen 7
B tageszahl in Datum umrechnen Java Basics - Anfänger-Themen 6
F Datum Differenz berechnen Java Basics - Anfänger-Themen 7
B String in Datum Java Basics - Anfänger-Themen 3
M CompareTo soll Datum sortieren Java Basics - Anfänger-Themen 2
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
I Datum und Uhrzeitpattern von Locale Java Basics - Anfänger-Themen 7
H Wie wandel ich ein Datum in eine Zeichenkette um mit StringBuffer? Java Basics - Anfänger-Themen 3
I Datum ohne GregorianCalendar und co. Java Basics - Anfänger-Themen 3
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
N Datum abgleichen und Frage zum Layout Java Basics - Anfänger-Themen 3
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
M Aktuelles Datum in MySQL speichern Java Basics - Anfänger-Themen 11
P Datum umwandeln Java Basics - Anfänger-Themen 5
A Datum formatieren Java Basics - Anfänger-Themen 6
K Samstag einer Woche anhand eines Datum Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
B Datum ändern? Java Basics - Anfänger-Themen 8
Tally Methoden BlueJ - Datum als Kalendertag int - tagImJahr Java Basics - Anfänger-Themen 6
K wie Datum in JTable anders anzeigen lassen Java Basics - Anfänger-Themen 2
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
MiMa String Datum ermitteln Java Basics - Anfänger-Themen 9
D Hilfe beim SDF Datum Ausgabe Java Basics - Anfänger-Themen 20
A Plausibles Datum Java Basics - Anfänger-Themen 21
A Aktuelles Datum einfügen.. Java Basics - Anfänger-Themen 4
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
K Java Datum berechnen Java Basics - Anfänger-Themen 13
L Datum probleme Java Basics - Anfänger-Themen 6
S fehler beim datum parsen Java Basics - Anfänger-Themen 6
S Schleife Datum Java Basics - Anfänger-Themen 11
S Datum ändern bzw. abziehen Java Basics - Anfänger-Themen 3
M String in Datum umwandeln mit SimpleDateFormat Java Basics - Anfänger-Themen 3
E Datentypen Unvollständiges Datum parsen Java Basics - Anfänger-Themen 8
T Heutiges datum OHNE Calendar? Java Basics - Anfänger-Themen 9
K Wie Datum um einen Tag erhöhen? Java Basics - Anfänger-Themen 4
A Datum Prüfen Java Basics - Anfänger-Themen 3
B Wie aus einem Datum String eine Timestamp erzeugen Java Basics - Anfänger-Themen 6
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
E Methoden Datum , Uhrzeit, Nachricht in txt Datei schreiben Java Basics - Anfänger-Themen 3
E Eigene class datum Java Basics - Anfänger-Themen 2
A Datum formatieren Java Basics - Anfänger-Themen 8
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
M Datum aus einer Textdatei holen Java Basics - Anfänger-Themen 9
M Datum und Stunde als String ausgeben Java Basics - Anfänger-Themen 15
N Datentypen Datum konvertieren mit kurzer Monatsangabe Java Basics - Anfänger-Themen 3
U Java Datum vergleichen - Sommerzeitproblem Java Basics - Anfänger-Themen 5
R GregorianCalendar auf Datum reduzieren Java Basics - Anfänger-Themen 9
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
F Datum AM / PM parsen Java Basics - Anfänger-Themen 5
A Datentypen Datum mit "May" zu Date parsen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben