mercredi 3 juin 2015

JAVA Derby INSERT probleme

Hi, ich möchte von einer GUI, in der Der Name, Geburtsdatum und Geschlecht eingegeben wird, in meine Datenbank schreiben. allerdings bekomme ich immer
Code:

java.lang.NullPointerException
aber auch nur das, also keine weitere Erläuterung oder so dazu.

Java Code:

  1. 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.
  2. Inputg = (String) jComboBox10.getSelectedItem(); //hierbei handelt es sich um die combobox mit dem geschlecht
  3. //System.out.println(Inputg);
  4. //Der String wird zu m bzw. w umgeändert, da die datenbank lediglich diese Buchstaben für das Geschlecht gespeichert hat.
  5. String weibl = "weiblich";
  6. String man = "männlich";
  7. if (Inputg.contains(weibl))
  8. {
  9. Inputg = "w";
  10. //System.out.println(Inputg);
  11. }
  12. else if (Inputg.contains(man))
  13. {
  14. Inputg = "m";
  15. //System.out.println(Inputg);
  16. }
  17. //System.out.println(e.getStateChange() == 1 ? JComboBox.getSelectedItem() : "");
  18. //Zahlen aus dem Datumfeldern werden eingelesen
  19. jahr = Integer.parseInt(jTextField18.getText());
  20. //String monat = jTextField17.getText();
  21. monat = Integer.parseInt(jTextField17.getText());
  22. tag = Integer.parseInt(jTextField15.getText());
  23. //Namen werden ausgelesen
  24. vorname = jTextField14.getText();
  25. nachname = jTextField16.getText();
  26. String name = nachname + ", " + vorname;
  27. //System.out.println(name);
  28. //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.
  29. int y;
  30. int z;
  31. y = 1;
  32. z = monat - y;
  33. //GregorianCalender ermöglicht einen Datum Datentyp
  34. //GregorianCalendar geburtsdatum = new GregorianCalendar(jahr, z, tag);
  35. //Date udate = geburtsdatum.getTime();
  36. //standartmäßig verwendet der GregorianCalender alle Einheiten (also auch Zeit, etc.) aber wir brauchen nur das Datum, demnach geben wir ihm das Schema vor
  37. //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  38. //String datum = sdf.format(udate);
  39. //SQL
  40. //PreparedStatement preparedStatement = null;
  41.  
  42.  
  43. String SQLinsert = "INSERT INTO SCHUELER (NAME, GESCHLECHT, GEBURTSDATUM) VALUES (?, ?, ?)";
  44.  
  45. try
  46. {
  47. PreparedStatement preparedStatement = conn.prepareStatement(SQLinsert);
  48. preparedStatement.setString(1, name);
  49. preparedStatement.setString(2, Inputg);
  50. //Datum wird in Datenbankformat gebracht
  51. java.util.Date dutil;
  52. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-yy");
  53. dutil = sdf.parse(jahr + "-" + z + "-" + tag);
  54. java.sql.Date dsql = new java.sql.Date(dutil.getTime());
  55. //wird für die Konsole ausgegeben
  56. System.out.println(dutil);
  57. System.out.println("dsql =" + dutil);
  58. preparedStatement.setDate(3, dsql);
  59. //Update durchführen
  60. preparedStatement.executeUpdate();
  61. /*stmtdbbi = dbverbindung.createStatement();
  62.   stmtdbbi.executeUpdate("INSERT INTO LOGIN.SCHUELER (name, geschlecht, geburtsdatum) "
  63.   +"VALUES ('"+name+"', '"+Inputg+"', '"+datum+"')");
  64.   String SQLcontrol = ("SELECT * FROM LOGIN.SCHUELER");
  65.   System.out.println(SQLcontrol);*/
  66. } catch (Exception e) {
  67. System.out.println("dbbearbeitenpanel DB-Verbindungsfehler: " + e);
  68. System.exit(0);
  69. }
  70.  
  71. }


hat jmd ne Idee, wie ich das beheben kann, denn das ist so ziemlich die letzte Schwierigkeit in meinem Projekt :)

MFG
mirisbowring


JAVA Derby INSERT probleme

0 commentaires:

Enregistrer un commentaire