sql >> Databáze >  >> RDS >> Mysql

Vložte data formuláře do dvou různých tabulek v databázi prostřednictvím stránky jsp

Řešení 1

Vytvořte dvě různé instance příkazu pro vaše dvě operace vložení.

Řešení 2

Pokud chcete znovu použít jednu instanci příkazu, zavřete prostředky v Konečně blok. Ve skutečnosti je vždy dobrý nápad vložit zavírací příkaz do konečně blokovat nebo jednoduše použít try-catch-resource které jdk7+ nabízí.

Nesouvisí s vašimi konkrétními otázkami

  • Důrazně doporučujeme nepoužívat kód Java v souboru jsp. Vyhledejte výrazy "jsp servlet mvc".
  • Použijte PreparedStatement místo Statement, abyste se vyhnuli útoku SQL injection.

UPRAVIT pro řešení 1:

V bloku prvního pokusu:
V části Statement myStatement = myConnection.createStatement();
přidat Statement myStatementTwo = myConnection.createStatement();

V bloku druhého pokusu:
změňte myStatement.executeUpdate(sqlString);
to myStatementTwo.executeUpdate(sqlString);

Přidejte poslední blok pro svůj první pokusný blok a zavřete tam všechny zdroje. Úprava kódu je v podstatě stejná jako přepisování všeho od nuly. Největší užitek vám přinese, pokud to dokážete sami.

UPRAVIT poté, co OP poskytl HTML kód a databázi

Vaše Dest_has_Categories Dest_idDest tabulky je auto_increment ale je to také cizí klíč odkazující na Cíl Primární klíč uživatele idDest . Cizí klíče referenční tabulky (spojené tabulky) by neměly být auto_increment. Pokud v referenční tabulce neexistuje automaticky inkrementovaná hodnota generovaná DBMS, nastanou problémy.

Zajistěte, aby se cizí klíče nezvyšovaly automaticky a při vkládání do referenční tabulky Dest_has_Categories , vložte prosím stávající kategorie ID a Cíl id.

Když změníte svůj kód, nezapomeňte také použít moje řešení 2 jako osvědčený postup.




  1. Chyba při použití připojení OLAP:Poskytovatel MSOLAP není registrován na místním počítači...

  2. Odečtení dvou stejných hodnot není v mysql nula

  3. Opravit indexování pomocí Join-Where-Group Výběrem dotazů, které se vyvarují použití dočasných; Pomocí řazení souborů

  4. Příkaz CREATE byl odepřen pro uživatele, který má GRANT ALL PRIVILEGES