# Java > Gnral Java > Persistance des donnes >  [iBatis] Spring Ibatis Mysql

## jamalmoundir

Salut,
je suis entrain de faire les tuto de serge tah sur SpringMVC, il propose une appli web avec SpringMVC et Ibatis + BD Mysql. Le problme c'est ce que j'arrive pas a ajouter des enregistrement  la BD il m'affiche l'erreur suivante :


```

```

je crois que le probleme viens du fichier personnes-mysql.xml et plus prcisement du code suivant 


```

```

car il faut generer l'id automatiquement (c'est la cl primaire).

Est ce qu'il y a qlq'un qui a deja fait se tuto, ou bien si qlq'un comprend ce je raconte.
Merci

----------


## KiLVaiDeN

Salut,

Je ne suis pas sr que le problme vienne du bout de code que tu as fournis.

Peux-tu fournir l'intgralit du fichier ?

A+

----------


## jamalmoundir

Le voila le fichier



```

```

Merci

----------


## KiLVaiDeN

Ton problme vient donc en effet de ton id.

Normalement, tu n'as pas  passer la valeur, donc ton champ devrait tre null ( de prfrence id devrait tre un objet Integer ) et ensuite, dans ta base de donnes MySQL, ton champ id doit tre positionn en tant que "auto_increment".

----------


## jamalmoundir

mais alors ca sert a koi se bout de code


```

```

----------


## KiLVaiDeN

Ca sert lorsque tu as insrer un objet Personne, de rcuprer l'id nouvellement insr.

----------


## jamalmoundir

Et donc pour que l'id soit inserer ds la table aussi avec une valeur valide (pour respecter l'unicit),il faut qu'il soit incrementer par Mysql automatiquement ?

----------


## KiLVaiDeN

Oui c'est l'option de base pour MySQL me semble-t-il, et donc pour l'insert, tu n'as pas besoin de prciser de selectKey.

Pour des bases de donnes qui utilisent des squences par exemple ( PostGreSQL ou Oracle sont des exemples ) un selectKey est necessaire pour rcuprer la prochaine valeur de la squence et la mettre dans le champ id.

----------


## jamalmoundir

Merci bq pour ces explications mnt j'ai compris se ki se passe. l je suis pass  hibernate car j'ai vue que la pluspart travaille avec et qu'il y a plus de doc, merci aussi  pour tes explications de l'autre forum

a+

----------


## K-Ka

Juste si je peux te donner un petit conseil, fixe toi sur un groupe de technos soit Spring/Ibatis, soit Spring/Hibernate et reste dessus, sinon tu n'arriveras que trs difficilement  apprendre srieusement quelques choses de fond en comble ...

Si tu as besoin d'un coup de main, j'ai il n'y a pas longtemps attaqu l'apprentissage de la partie IoC et persistance de Spring avec Hibernate (que j'avais dj utilis seul) et je me suis bas sur le tuto de Serge Tah que j'ai adapt. Donc pour l'instant faute de temps je ne suis pas aller trs loin (en gros j'ai toute la partie persistence qui fonctionne, il me reste la mise en place des transactions avec la partie mtier ).

----------


## hellipse

bonjour,
j'uitilise ibatis et j'ai besoin d'excuter deux requtes de suite sous mysql.

exemple qui ne marche pas :

<statement id="InsetUpdateByAdmTask" parameterClass="java.util.Map" resultClass="java.lang.Integer">
insert into table_histo (id, b, c )
values (#id# , #b#, #c#);

update table set statut =#statut# where id = #id# 
</statement>

je ne souhaite pas faire deux statement diffrents. Merci pour votre aide

----------

