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
Lepaskan: 2024-12-13 01:51:10
asal
566 orang telah melayarinya

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)";
Salin selepas log masuk

Pernyataan yang betul:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan