Løsning 1
Opret to forskellige Statement-instanser for dine to indsættelsesoperationer.
Løsning 2
Hvis du vil genbruge en enkelt Statement-forekomst, skal du lukke ressourcerne i en Endelig blok. Faktisk er det altid en god ide at sætte den tætte udtalelse i endelig blokere eller blot bruge try-catch-resource som jdk7+ har at tilbyde.
Urelateret til dine konkrete spørgsmål
- Det anbefales stærkt, at du undgår at bruge java-kode i jsp-filen. Søg efter udtrykkene "jsp servlet mvc".
- Brug PreparedStatement i stedet for Statement for at undgå sql-injektionsangreb.
EDIT for løsning 1:
I dit første forsøgsblok:
Under Statement myStatement = myConnection.createStatement();
tilføj Statement myStatementTwo = myConnection.createStatement();
I dit andet forsøgsblok:
ændre myStatement.executeUpdate(sqlString);
til myStatementTwo.executeUpdate(sqlString);
Tilføj en sidste blok til din første forsøgsblok og luk al din ressource der. At redigere din kode er stort set det samme som at omskrive alt fra bunden, det vil gavne dig mest, hvis du kan gøre det selv.
EDIT efter OP leverede HTML-kode og database
Dine Dest_has_Categories tabellens Dest_idDest er en auto_increment kolonne, men det er også en fremmednøgle, der henviser til Dest s primære nøgle idDest . Reference Table (fælles tabel) 's fremmednøgler bør ikke være auto_increment. Der vil være problemer, hvis den automatisk forøgede værdi genereret af DBMS ikke findes i referencetabellen.
Sørg for, at fremmednøglerne ikke auto_increment, og når du indsætter Dest_has_Categories i referencetabellen , indsæt venligst eksisterende Kategorier s id og Dest 's id.
Når du ændrer din kode, så sørg også for at bruge min løsning 2 for bedste praksis.