# Daten aus jTextfiled in DB schreiben - SQL Befehl



## Seba (5. Jul 2009)

Hallo Leute,

ich habe ein kleines Programm geschrieben, mit dem ich Vornamen, Nachnamen, ZIP und Ort in eine mysql Tabelle schreiben lassen kann.

das einfügen in die Datenbank funktioniert auch teilweise. Doch es gibt ein Problem:

wenn ich am textfieldNachname etwas anderes eintragen will als "nachnamen", dann gibt er mir folgende exception aus:



```
postit.PostitVerwaltungImpl createPerson
SCHWERWIEGEND: null
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'Nachna' in 'field list'
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1605)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1524)
        at db.PersonenMapper.insert(PersonenMapper.java:68)
        at postit.PostitVerwaltungImpl.createPerson(PostitVerwaltungImpl.java:74)
        at gui.client.buttonSendenActionPerformed(client.java:303)
        at gui.client.access$000(client.java:18)
        at gui.client$1.actionPerformed(client.java:64)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6134)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5899)
        at java.awt.Container.processEvent(Container.java:2023)
        at java.awt.Component.dispatchEventImpl(Component.java:4501)
        at java.awt.Container.dispatchEventImpl(Container.java:2081)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)
        at java.awt.Container.dispatchEventImpl(Container.java:2067)
        at java.awt.Window.dispatchEventImpl(Window.java:2458)
        at java.awt.Component.dispatchEvent(Component.java:4331)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
```


wenn ich "nachnamen" darin stehen lasse, dann wirft er zwar keine Exception, trägt es aber nicht in die SQL Tabelle ein...



```
private void buttonSendenActionPerformed(java.awt.event.ActionEvent evt) {                                             

        String nachname = textfieldNachname.getText();
        String vorname = textfieldVorname.getText();
        String zip = textfieldZIP.getText();
        String ort = textfieldOrt.getText();

        try {

        Person person = new PersonImpl();

            person.setNachname(nachname);
            person.setVorname(vorname);
            person.setZip(zip);
            person.setOrt(ort);

           
            PostitVerwaltung verwaltung = new PostitVerwaltungImpl(person, PersonenMapper.personenMapper());
            
            verwaltung.createPerson(
                    person.getNachname(),
                    person.getVorname(),
                    person.getZip(),
                    person.getOrt());

            JOptionPane.showMessageDialog(null,"Die Person wurde erfolgreich in die Datenbank eingetragen.");

        } catch (RemoteException ex) {
            Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);
        }



    }
```

Hier noch der zugehörige Mapper incl dem SQL statement.


```
public Person insert(Person p) throws SQLException {
		Connection con = DBConnection.connection();

		try {
			Statement stmt = con.createStatement();

					// Jetzt erst erfolgt die tatsächliche Einfügeoperation
					stmt.executeUpdate("INSERT INTO postit (nachname, vorname, zip, ort) " +
						"VALUES (" +
						p.getNachname() + ",'" +
                                                p.getVorname() + "','" +
                                                p.getZip() + "','" +
                                                p.getOrt() + "')");
        }
				catch(RemoteException ex) {
					ex.printStackTrace();
				}
//			}
//		} catch (SQLException e2) {
//			e2.printStackTrace();
//		}


		return p;
	}
```

Ich habe die Vermutung das es an dem SQL Befehl liegen kann?


----------



## angelchr (6. Jul 2009)

hi,
es fehlen zwei ' 
vor und nach

```
p.getNachname
```


----------



## Seba (6. Jul 2009)

angelchr hat gesagt.:


> hi,
> es fehlen zwei '
> vor und nach
> 
> ...



danke, das war der Fehler!


----------

