Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat 'java.sql.SQLException: Indeks parameter di luar julat'?

Mengapa Saya Mendapat 'java.sql.SQLException: Indeks parameter di luar julat'?

Susan Sarandon
Lepaskan: 2024-12-24 00:24:20
asal
910 orang telah melayarinya

Why Am I Getting

java.sql.SQLException: Indeks parameter di luar julat (1 > bilangan parameter, iaitu 0)

Ralat ini berlaku apabila anda cuba menetapkan parameter dalam pernyataan yang disediakan yang tidak mempunyai ruang letak yang sepadan dalam SQL pertanyaan.

Punca:

  • Pertanyaan SQL tidak termasuk ruang letak yang mencukupi (?) untuk bilangan parameter yang ditetapkan dalam pernyataan.
  • Anda tersilap menggunakan pernyataan berparameter dengan tidak berparameter pertanyaan.

Penyelesaian:

Untuk menyelesaikan ralat ini, pastikan pertanyaan SQL mengandungi bilangan ruang letak yang betul untuk parameter yang ditetapkan. Contohnya:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1);
preparedStatement.setString(2, val2);
preparedStatement.setString(3, val3);
Salin selepas log masuk

Nota Tambahan:

  • Indeks parameter bermula pada 1, jadi pastikan anda menetapkannya dalam susunan yang betul.
  • Jangan memetik ruang letak dalam pertanyaan SQL, kerana ini akan menyebabkan mereka dianggap sebagai rentetan nilai.
  • Jika anda menggunakan pertanyaan tidak berparameter, anda harus menetapkan parameter terus dalam rentetan pertanyaan:
String sql = String.format("INSERT INTO tablename (col1, col2, col3) VALUES (%s, %s, %s)", val1, val2, val3);
Salin selepas log masuk

Rujukan:

  • Tutorial JDBC - Penyata Disediakan: https://docs.oracle.com/javase/tutorial/jdbc/preparedstatements.html

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'java.sql.SQLException: 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