Soluzione 1
Crea due diverse istanze di Statement per le tue due operazioni di inserimento.
Soluzione 2
Se desideri riutilizzare una singola istanza di Statement, chiudi le risorse in un Finalmente bloccare. In realtà è sempre una buona idea inserire la dichiarazione di chiusura in finalmente bloccare o semplicemente utilizzare try-catch-resource che jdk7+ ha da offrire.
Non correlato alle tue domande concrete
- Si consiglia vivamente di evitare di utilizzare il codice java nel file jsp. Cerca i termini "jsp servlet mvc".
- Utilizzare PreparedStatement invece di Statement per evitare attacchi sql injection.
MODIFICA per la soluzione 1:
Nel blocco del primo tentativo:
Sotto Statement myStatement = myConnection.createStatement();
add Statement myStatementTwo = myConnection.createStatement();
Nel tuo secondo blocco di tentativi:
change myStatement.executeUpdate(sqlString);
a myStatementTwo.executeUpdate(sqlString);
Aggiungi un blocco finale per il tuo primo blocco di tentativi e chiudi lì tutte le tue risorse. Modificare il codice è più o meno lo stesso che riscrivere tutto da zero, se riuscirai a farlo da solo ti trarrà il massimo vantaggio.
EDIT dopo che OP ha fornito codice HTML e database
Le tue Dest_has_Categories Dest_idDest della tabella è un incremento_automatico colonna ma è anche una chiave esterna che fa riferimento a Dest chiave primaria di idDest . Le chiavi esterne della tabella di riferimento (tabella congiunta) non dovrebbero essere auto_incremento. Ci saranno problemi se il valore incrementato automaticamente generato da DBMS non esiste nella tabella di riferimento.
Si prega di rendere le chiavi esterne non auto_increment e quando si inseriscono nella tabella di riferimento Dest_has_Categories , inserisci le Categorie esistenti 's id e Destina è l'id.
Inoltre, quando modifichi il codice, assicurati di utilizzare anche la mia Soluzione 2 per le migliori pratiche.