Oplossing 1
Maak twee verschillende Statement-instanties voor uw twee invoegbewerkingen.
Oplossing 2
Als u één enkele instantie van Statement opnieuw wilt gebruiken, sluit u de bronnen in een Eindelijk blok. Het is eigenlijk altijd een goed idee om de afsluitende verklaring in eindelijk . te plaatsen blokkeer of gebruik gewoon try-catch-resource die jdk7+ te bieden heeft.
Niet gerelateerd aan uw concrete vragen
- Het wordt ten zeerste aanbevolen om het gebruik van Java-code in het JSP-bestand te vermijden. Zoek de termen "jsp servlet mvc".
- Gebruik PreparedStatement in plaats van Statement om SQL-injectie-aanvallen te voorkomen.
BEWERKEN voor oplossing 1:
In je eerste try-blok:
Onder Statement myStatement = myConnection.createStatement();
voeg Statement myStatementTwo = myConnection.createStatement();
toe
In je tweede try-blok:
verander myStatement.executeUpdate(sqlString);
naar myStatementTwo.executeUpdate(sqlString);
Voeg een laatste blok toe voor je eerste probeerblok en sluit daar al je bronnen. Het bewerken van uw code is vrijwel hetzelfde als alles vanaf het begin opnieuw schrijven, u zult er het meeste profijt van hebben als u dat zelf kunt doen.
BEWERKEN nadat OP HTML-code en database heeft verstrekt
Je Dest_has_Categories tabel's Dest_idDest is een auto_increment kolom, maar het is ook een externe sleutel die verwijst naar Dest 's primaire sleutel idDest . Referentietabel (gezamenlijke tabel) 's refererende sleutels mag niet auto_increment zijn. Er zullen problemen optreden als de automatisch verhoogde waarde die door DBMS wordt gegenereerd, niet voorkomt in de referentietabel.
Maak de externe sleutels niet auto_increment en wanneer u invoegt in de referentietabel Dest_has_Categories , voeg a.u.b. bestaande Categorieën toe 's id en Dest 's-id.
Als je je code wijzigt, zorg er dan voor dat je ook mijn Oplossing 2 gebruikt voor de beste werkwijzen.