Mysql
 sql >> Database >  >> RDS >> Mysql

Inserisci i dati del modulo in due diverse tabelle sul database tramite la pagina jsp

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.