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);
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);
Nota:
Maklumat Tambahan:
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!