Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insérer des données de formulaire dans deux tables différentes de la base de données via la page jsp

Solution 1

Créez deux instances Statement différentes pour vos deux opérations d'insertion.

Solution 2

Si vous souhaitez réutiliser une seule instance de Statement, fermez les ressources dans un Enfin bloquer. En fait, c'est toujours une bonne idée de mettre l'instruction close dans finally bloquer ou simplement utiliser try-catch-resource que jdk7+ a à offrir.

Sans rapport avec vos questions concrètes

  • Il est fortement recommandé d'éviter d'utiliser du code Java dans le fichier jsp. Recherchez les termes "jsp servlet mvc".
  • Utilisez PreparedStatement au lieu de Statement pour éviter les attaques par injection sql.

MODIFIER pour la solution 1 :

Dans votre premier bloc try :
Sous Statement myStatement = myConnection.createStatement();
ajouter Statement myStatementTwo = myConnection.createStatement();

Dans votre deuxième bloc try :
modifiez myStatement.executeUpdate(sqlString);
à myStatementTwo.executeUpdate(sqlString);

Ajoutez un bloc final pour votre premier bloc d'essai et fermez-y toutes vos ressources. Éditer votre code revient à peu près à tout réécrire à partir de zéro, cela vous profitera le plus si vous pouvez le faire vous-même.

MODIFIER après que l'OP ait fourni le code HTML et la base de données

Vos Dest_has_Categories Dest_idDest de la table est un auto_increment mais c'est aussi une clé étrangère référençant Dest la clé primaire de idDest . Les clés étrangères de la table de référence (table commune) ne devraient pas être auto_increment. Il y aura des problèmes si la valeur auto-incrémentée générée par le SGBD n'existe pas dans la table de référence.

Veuillez faire en sorte que les clés étrangères ne soient pas auto_increment et lorsque vous insérez dans la table de référence Dest_has_Categories , veuillez insérer les catégories existantes 's id et Dest 's id.

De plus, lorsque vous modifiez votre code, assurez-vous également d'utiliser ma Solution 2 pour les meilleures pratiques.