Solusi 1
Buat dua instance Pernyataan berbeda untuk dua operasi penyisipan Anda.
Solusi 2
Jika Anda ingin menggunakan kembali satu instance Pernyataan, tutup sumber daya dalam Akhirnya memblokir. Sebenarnya, selalu merupakan ide yang baik untuk memasukkan pernyataan penutup akhirnya blokir atau cukup gunakan try-catch-resource yang ditawarkan jdk7+.
Tidak terkait dengan pertanyaan konkret Anda
- Sangat disarankan agar Anda menghindari penggunaan kode java dalam file jsp. Cari istilah "jsp servlet mvc".
- Gunakan PreparedStatement alih-alih Statement untuk menghindari serangan injeksi sql.
EDIT untuk solusi 1:
Di blok percobaan pertama Anda:
Di bawah Statement myStatement = myConnection.createStatement();
tambahkan Statement myStatementTwo = myConnection.createStatement();
Di blok percobaan kedua Anda:
ubah myStatement.executeUpdate(sqlString);
ke myStatementTwo.executeUpdate(sqlString);
Tambahkan blok terakhir untuk blok percobaan pertama Anda dan tutup semua sumber daya Anda di sana. Mengedit kode Anda hampir sama dengan menulis ulang semuanya dari awal, itu akan sangat menguntungkan Anda jika Anda bisa melakukannya sendiri.
EDIT setelah OP menyediakan kode HTML dan database
Kategori_Has_Tujuan . Anda Tujuan_idTujuan table tabel adalah peningkatan_otomatis kolom tetapi juga merupakan referensi kunci asing Tujuan kunci utama idDest . Kunci asing Tabel Referensi (tabel gabungan) tidak boleh menjadi auto_increment. Akan ada masalah jika nilai peningkatan otomatis yang dihasilkan oleh DBMS tidak ada di tabel referensi.
Harap buat kunci asing tidak bertambah secara otomatis dan saat Anda memasukkan ke tabel referensi Dest_has_Categories , harap masukkan Kategori yang ada id dan Tujuan id.
Selain itu, saat Anda mengubah kode, pastikan juga menggunakan Solusi 2 saya untuk praktik terbaik.