Solución 1
Cree dos instancias de Declaración diferentes para sus dos operaciones de inserción.
Solución 2
Si desea reutilizar una sola instancia de Declaración, cierre los recursos en un Finalmente bloquear. De hecho, siempre es una buena idea poner la declaración de cierre en finalmente bloquear o simplemente usar try-catch-resource que jdk7+ tiene para ofrecer.
No relacionado con sus preguntas concretas
- Se recomienda enfáticamente que evite usar código java en el archivo jsp. Busque los términos "jsp servlet mvc".
- Use PreparedStatement en lugar de Statement para evitar ataques de inyección de SQL.
EDITAR para la solución 1:
En su bloque de primer intento:
Bajo Statement myStatement = myConnection.createStatement();
añadir Statement myStatementTwo = myConnection.createStatement();
En su segundo bloque de prueba:
cambie myStatement.executeUpdate(sqlString);
a myStatementTwo.executeUpdate(sqlString);
Agregue un bloque final para su primer bloque de prueba y cierre todos sus recursos allí. Editar su código es más o menos lo mismo que reescribir todo desde cero, le beneficiará más si puede hacerlo usted mismo.
EDITAR después de que OP proporcionó el código HTML y la base de datos
Tus Dest_has_Categories Dest_idDest de la tabla es un auto_incremento pero también es una clave externa que hace referencia a Dest Clave principal de idDest . Las claves foráneas de la tabla de referencia (tabla conjunta) no deben ser auto_incremento. Habrá problemas si el valor de incremento automático generado por DBMS no existe en la tabla de referencia.
Haga que las claves foráneas no se incrementen automáticamente y cuando las inserte en la tabla de referencia Dest_has_Categories , inserte Categorías existentes ID y destino de identificación de
Además, cuando cambie su código, asegúrese de usar también mi Solución 2 para las mejores prácticas.