Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wstaw dane formularza do dwóch różnych tabel w bazie danych za pośrednictwem strony jsp

Rozwiązanie 1

Utwórz dwie różne instancje instrukcji dla dwóch operacji wstawiania.

Rozwiązanie 2

Jeśli chcesz ponownie użyć jednej instancji Statement, zamknij zasoby w Wreszcie blok. Właściwie zawsze dobrym pomysłem jest umieszczenie ścisłego oświadczenia w w końcu zablokuj lub po prostu użyj try-catch-resource że jdk7+ ma do zaoferowania.

Niezwiązane z Twoimi konkretnymi pytaniami

  • Wysoce zalecane jest unikanie używania kodu java w pliku jsp. Wyszukaj terminy „jsp servlet mvc”.
  • Użyj PreparedStatement zamiast Statement, aby uniknąć ataku wstrzykiwania sql.

EDYTUJ dla rozwiązania 1:

W pierwszym bloku próby:
Pod Statement myStatement = myConnection.createStatement();
dodaj Statement myStatementTwo = myConnection.createStatement();

W drugim bloku prób:
zmień myStatement.executeUpdate(sqlString);
do myStatementTwo.executeUpdate(sqlString);

Dodaj ostatni blok do pierwszego bloku prób i zamknij tam wszystkie zasoby. Edytowanie kodu jest prawie takie samo, jak przepisywanie wszystkiego od zera, przyniesie ci najwięcej korzyści, jeśli będziesz mógł to zrobić sam.

EDYTUJ po dostarczeniu przez OP kodu HTML i bazy danych

Twoje Dest_has_Categories Dest_idDest tabeli to auto_increment kolumna, ale jest to również klucz obcy odwołujący się do Dest klucz podstawowy idDest . Klucze obce tabeli referencyjnej (tabeli wspólnej) nie powinny być auto_inkrementacją. Pojawią się problemy, jeśli automatycznie inkrementowana wartość generowana przez DBMS nie istnieje w tabeli odniesienia.

Proszę, aby klucze obce nie były automatycznie inkrementowane, a po wstawieniu do tabeli referencyjnej Dest_has_Categories , wstaw istniejące kategorie identyfikator i Dest id.

Ponadto, gdy zmienisz kod, upewnij się, że korzystasz również z mojego Rozwiązania 2, aby uzyskać najlepsze praktyki.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw rekord, jeśli nie istnieje bez klucza Unique

  2. Najlepszy sposób na czytanie CSV w Ruby. Szybszy CSV?

  3. Wybór częstotliwości wyniku, który mógłby pojawić się w wielu kolumnach (SQL)

  4. Procedury składowane MySQL nie działają z SELECT (pytanie podstawowe)

  5. jak znaleźć pierwszy i ostatni rekord z tabeli mysql