Rumah >Java >javaTutorial >Mengapa Saya Mendapat Ralat 'Indeks Parameter Di Luar Julat' dalam Kod Pangkalan Data Java Saya?

Mengapa Saya Mendapat Ralat 'Indeks Parameter Di Luar Julat' dalam Kod Pangkalan Data Java Saya?

DDD
DDDasal
2024-12-13 01:51:10522semak imbas

Why Am I Getting a

Ralat Luar Julat Indeks Parameter dalam Pangkalan Data Java

Apabila cuba berinteraksi dengan pangkalan data menggunakan Java, anda mungkin menghadapi ralat "java .sql.SQLException: Indeks parameter di luar julat (1 > bilangan parameter, iaitu 0)". Ralat ini menunjukkan percanggahan antara pernyataan SQL dan nilai yang disediakan untuk parameternya.

Punca:

Ralat berlaku apabila anda cuba menetapkan parameter menggunakan PreparedStatement objek, tetapi pernyataan SQL yang sepadan tidak termasuk ruang letak (?) untuk parameter itu. Menggunakan setString() atau kaedah penetap lain tanpa pemegang tempat yang sepadan dalam pertanyaan akan mencetuskan ralat ini.

Penyelesaian:

Untuk menyelesaikan ralat ini, pastikan pernyataan SQL anda mengandungi ruang letak untuk setiap parameter yang anda ingin tetapkan melalui objek PreparedStatement. Pemegang tempat hendaklah diwakili sebagai tanda soal (?) dalam pernyataan.

Contoh:

Pernyataan salah:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)";

Pernyataan yang betul:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";

Tambahan Pertimbangan:

  • Indeks parameter bermula dari 1, jadi pemegang tempat pertama dalam pernyataan harus diberikan kepada parameter pertama yang anda tetapkan melalui PreparedStatement.
  • Elakkan menggunakan single atau double petikan di sekitar pemegang tempat, kerana ini akan mentafsirkannya sebagai nilai rentetan dan bukannya pemegang tempat.

Sumber Lanjut:

  • [Tutorial JDBC - Penyata Disediakan](https://docs.oracle.com/javase/tutorial /jdbc/basics/prepared.html)

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Indeks Parameter Di Luar Julat' dalam Kod Pangkalan Data Java Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn