Lösning 1
Skapa två olika Statement-instanser för dina två infogningsoperationer.
Lösning 2
Om du vill återanvända en enda Statement-instans, stäng resurserna i en Äntligen blockera. Egentligen är det alltid en bra idé att lägga det nära uttalandet i slutligen blockera eller använd helt enkelt try-catch-resource som jdk7+ har att erbjuda.
Inte relaterat till dina konkreta frågor
- Det rekommenderas starkt att du undviker att använda java-kod i jsp-filen. Sök efter termerna "jsp servlet mvc".
- Använd PreparedStatement istället för Statement för att undvika sql-injektionsattack.
REDIGERA för lösning 1:
I ditt första försöksblock:
Under Statement myStatement = myConnection.createStatement();
lägg till Statement myStatementTwo = myConnection.createStatement();
I ditt andra försöksblock:
ändra myStatement.executeUpdate(sqlString);
till myStatementTwo.executeUpdate(sqlString);
Lägg till ett sista block för ditt första försöksblock och stäng all din resurs där. Att redigera din kod är ungefär detsamma som att skriva om allt från början, det kommer att gynna dig mest om du kan göra det själv.
REDIGERA efter att OP tillhandahållit HTML-kod och databas
Dina Dest_has_Categories tabellens Dest_idDest är en auto_increment kolumn men det är också en främmande nyckel som refererar till Dest s primärnyckel idDest . Referenstabellen (gemensam tabell) s främmande nycklar ska inte vara auto_increment. Det kommer att uppstå problem om det automatiskt inkrementerade värdet som genereras av DBMS inte finns i referenstabellen.
Se till att de främmande nycklarna inte auto_increment och när du infogar i referenstabellen Dest_has_Categories , vänligen infoga befintliga kategorier s id och Dest s id.
När du ändrar din kod, se till att du också använder min lösning 2 för bästa praxis.