# PreparedStatement - Angabe des PK



## pat270881 (3. Dez 2005)

Hallo,

Ich verwende J2EE Struts und MySQL. Und habe eine test-tabelle wo der primarykey ein int ist und autoincrement. Jedoch muss man ja trotzdem den Parameter angeben.
Bei folgendem Statement


```
PreparedStatement updateUser = conn.prepareStatement("INSERT INTO testvalues(?,?,?,?,?,?)");
```

Wie muss ich nun den ersten Parameter setzen, damit dieser int-PK automatisch inkrementiert wird? - in der Datenbank ist alles richtig gesetzt.

Wollte es zuerst mit updateUser.setInt(1,null) oder updateUser.setNull, aber funktionieren beide nicht.

danke im voraus

lg


----------



## foobar (3. Dez 2005)

Wenn der PK ein autoincrement ist darfst du den Wert einfach nicht mitgeben.

```
PreparedStatement updateUser = conn.prepareStatement("INSERT INTO testvalues (col2, col3,col4,col5, col6) VALUES  (?,?,?,?,?,?)");
```

P.S.: col2-col6 sollen die Namen der Spalten darstellen


----------



## foobar (3. Dez 2005)

=> Nach JDBC verschoben


----------



## pat270881 (3. Dez 2005)

Naja, aber dann wird eine SQL Exception geworfen, dass ein Parameter fehlt...??


----------



## foobar (3. Dez 2005)

Warum denn das?
Die Anzahl der Spalten und die Anzahl der Variablen müssen nur korrespondieren, dann funktioniert das auch. In meinem Beispiel ist ein Fragezeichen zuviel, deshalb klappts nicht.


----------

