ResultSet 例外:「結果集開始之前」
執行查詢會傳回一個包含檢索到的資料行的 ResultSet 物件。然而,遊標最初指向第一行之前,導致嘗試檢索資料時出現「Before start of result set」異常。
原因:
錯誤當訪問 ResultSet資料而沒有先將遊標定位在有效的結果集上時會發生這種情況
解決方案:
要解決此問題,請在嘗試使用以下程式碼檢索資料之前將遊標移到第一行:
result.next(); String foundType = result.getString(1);
增強程式碼片段:
String sql = "SELECT type FROM node WHERE nid = ?"; PreparedStatement prep = conn.prepareStatement(sql); int meetNID = Integer.parseInt(node.get(BoutField.field_meet_nid)); prep.setInt(1, meetNID); ResultSet result = prep.executeQuery(); if (result.next()) { // Move cursor to first row String foundType = result.getString(1); ... // code to validate type } else { throw new IllegalArgumentException(String.format("Node %d must be of type 'meet', but was %s", meetNID, foundType)); }
此修改可確保在存取資料之前遊標位於 ResultSet 的第一行,從而防止出現「Before start of result set」異常。
以上是處理結果集資料時如何避免「結果集開始之前」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!