Hi, ich möchte von einer GUI, in der Der Name, Geburtsdatum und Geschlecht eingegeben wird, in meine Datenbank schreiben. allerdings bekomme ich immer
aber auch nur das, also keine weitere Erläuterung oder so dazu.
hat jmd ne Idee, wie ich das beheben kann, denn das ist so ziemlich die letzte Schwierigkeit in meinem Projekt
MFG
mirisbowring
Code:
java.lang.NullPointerException
Java:
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) { //Hier wird der angeklickte Wert gespeichert, um ihn später einsetzen zu können. das println ist zum nachverfolgen, ob alles sauber läuft, wenn die Konsole läuft.
Inputg = (String) jComboBox10.getSelectedItem(); //hierbei handelt es sich um die combobox mit dem geschlecht
//System.out.println(Inputg);
//Der String wird zu m bzw. w umgeändert, da die datenbank lediglich diese Buchstaben für das Geschlecht gespeichert hat.
String weibl = "weiblich";
String man = "männlich";
if (Inputg.contains(weibl))
{
Inputg = "w";
//System.out.println(Inputg);
}
else if (Inputg.contains(man))
{
Inputg = "m";
//System.out.println(Inputg);
}
//System.out.println(e.getStateChange() == 1 ? JComboBox.getSelectedItem() : "");
//Zahlen aus dem Datumfeldern werden eingelesen
jahr = Integer.parseInt(jTextField18.getText());
//String monat = jTextField17.getText();
monat = Integer.parseInt(jTextField17.getText());
tag = Integer.parseInt(jTextField15.getText());
//Namen werden ausgelesen
vorname = jTextField14.getText();
nachname = jTextField16.getText();
String name = nachname + ", " + vorname;
//System.out.println(name);
//es wird eine Variable 'y' mit dem Wert 1 erstellt und vom Monat abgezogen, da der Gregorianische Kalender von 0-11 geht|nicht aber von 1-12: Und da der nutzer das nicht beachten soll, muss der Integer einfach mit 1 Subtrahiert werden.
int y;
int z;
y = 1;
z = monat - y;
//GregorianCalender ermöglicht einen Datum Datentyp
//GregorianCalendar geburtsdatum = new GregorianCalendar(jahr, z, tag);
//Date udate = geburtsdatum.getTime();
//standartmäßig verwendet der GregorianCalender alle Einheiten (also auch Zeit, etc.) aber wir brauchen nur das Datum, demnach geben wir ihm das Schema vor
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//String datum = sdf.format(udate);
//SQL
//PreparedStatement preparedStatement = null;
String SQLinsert = "INSERT INTO SCHUELER (NAME, GESCHLECHT, GEBURTSDATUM) VALUES (?, ?, ?)";
try
{
PreparedStatement preparedStatement = conn.prepareStatement(SQLinsert);
preparedStatement.setString(1, name);
preparedStatement.setString(2, Inputg);
//Datum wird in Datenbankformat gebracht
java.util.Date dutil;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-yy");
dutil = sdf.parse(jahr + "-" + z + "-" + tag);
java.sql.Date dsql = new java.sql.Date(dutil.getTime());
//wird für die Konsole ausgegeben
System.out.println(dutil);
System.out.println("dsql =" + dutil);
preparedStatement.setDate(3, dsql);
//Update durchführen
preparedStatement.executeUpdate();
/*stmtdbbi = dbverbindung.createStatement();
stmtdbbi.executeUpdate("INSERT INTO LOGIN.SCHUELER (name, geschlecht, geburtsdatum) "
+"VALUES ('"+name+"', '"+Inputg+"', '"+datum+"')");
String SQLcontrol = ("SELECT * FROM LOGIN.SCHUELER");
System.out.println(SQLcontrol);*/
} catch (Exception e) {
System.out.println("dbbearbeitenpanel DB-Verbindungsfehler: " + e);
System.exit(0);
}
}
hat jmd ne Idee, wie ich das beheben kann, denn das ist so ziemlich die letzte Schwierigkeit in meinem Projekt
MFG
mirisbowring