Rumah >pangkalan data >tutorial mysql >Mengapa `java.sql.SQLException: Exhausted Resultset` Berlaku Selepas Gelung `while (rs.next())`?

Mengapa `java.sql.SQLException: Exhausted Resultset` Berlaku Selepas Gelung `while (rs.next())`?

Linda Hamilton
Linda Hamiltonasal
2025-01-06 03:08:39779semak imbas

Why Does `java.sql.SQLException: Exhausted Resultset` Occur After a `while (rs.next())` Loop?

java.sql.SQLException: Exhausted Resultset

Apabila melaksanakan pertanyaan pangkalan data, adalah penting untuk memastikan pengendalian objek ResultSet dengan betul. Jika percubaan selanjutnya dibuat untuk mengakses data selepas ResultSet telah kehabisan, Java mungkin membuang ralat "java.sql.SQLException: Exhausted Resultset". Ralat ini biasanya berlaku apabila mengakses nilai lajur selepas melengkapkan gelung while (rs.next()).

Pertimbangkan coretan kod berikut:

if (rs != null) {
  while (rs.next()) {
    count = rs.getInt(1);
  }
  count = rs.getInt(1); // This line attempts to access a value after the ResultSet has been exhausted and will throw the error.
}

Selepas gelung while selesai , ResultSet telah kehabisan dan tiada data lanjut boleh diambil. Percubaan untuk mengakses nilai lajur menggunakan rs.getInt(1) pada ketika ini akan mengakibatkan ralat "Set Hasil Habis".

Untuk menyelesaikan isu ini, pastikan sebarang akses kepada nilai lajur berlaku dalam tempoh masa (rs gelung .next()). Contohnya:

if (rs != null) {
  while (rs.next()) {
    int count = rs.getInt(1);
  }
}

Atas ialah kandungan terperinci Mengapa `java.sql.SQLException: Exhausted Resultset` Berlaku Selepas Gelung `while (rs.next())`?. 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