Rumah > pangkalan data > tutorial mysql > Mengapa Kod Java Saya Membuang Pengecualian SQL 'Indeks Parameter Di Luar Julat'?

Mengapa Kod Java Saya Membuang Pengecualian SQL 'Indeks Parameter Di Luar Julat'?

Mary-Kate Olsen
Lepaskan: 2024-12-27 00:48:17
asal
662 orang telah melayarinya

Why Does My Java Code Throw a

Indeks Parameter Di Luar Julat dalam Pengecualian SQL: Punca dan Penyelesaian

Menghadapi pengecualian "java.sql.SQLException: Indeks parameter daripada julat (1 > bilangan parameter, iaitu 0)" semasa memasukkan pangkalan data boleh mengecewakan. Ralat ini berlaku apabila anda cuba menetapkan nilai parameter dalam pernyataan yang disediakan manakala pertanyaan SQL tidak mempunyai ruang letak yang sepadan (?) untuk parameter tersebut.

Punca Ralat:

Ralat ini timbul apabila anda cuba menggunakan kaedah setXxx() pada PreparedStatement, tetapi rentetan pertanyaan SQL tidak mempunyai ruang letak yang diperlukan untuk yang ditentukan indeks parameter.

Contoh Kod Salah:

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

preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1); // This will fail.
preparedStatement.setString(2, val2);
preparedStatement.setString(3, val3);
Salin selepas log masuk

Penyelesaian:

Untuk menyelesaikan isu ini, anda perlu untuk mengubah suai rentetan pertanyaan SQL untuk memasukkan ruang letak (?) untuk semua parameter yang anda ingin lakukan set.

Contoh Kod Dibetulkan:

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

preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1);
preparedStatement.setString(2, val2);
preparedStatement.setString(3, val3);
Salin selepas log masuk

Nota:

  • Indeks parameter bermula dari 1 .
  • Anda harus mengelak daripada menggunakan petikan tunggal atau berganda di sekeliling ruang letak. Melakukannya akan menyebabkan penghurai SQL mentafsirkannya sebagai nilai rentetan, yang membawa kepada pengecualian yang sama.

Maklumat Tambahan:

  • [Tutorial JDBC - Bersedia Penyata](https://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/index.html#prepared)

Atas ialah kandungan terperinci Mengapa Kod Java Saya Membuang Pengecualian SQL 'Indeks Parameter Di Luar Julat'?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan