[英]null pointer exception can't be fixed
我正在用Java實現用於庫存管理系統的軟件。我正在使用MVC設計模式,並且在嘗試填充JcomboBox時發現了此異常。 我想在將商品代碼傳遞到方法中時獲取所有批次。因此該方法應返回相關對象的數組列表。 但是當我運行該程序時,它給了我一個類似的錯誤,它說結果集為空。 但我也手動在終端中嘗試了sql代碼,它起作用了。 所以我無法想象如何解決此錯誤。 我很高興有人能告訴我問題出在哪里。 我試圖發布我的屏幕截圖,但由於聲譽不佳而無法完成
這是我的代碼
String sql = "select batchNo from MainBatch where itemCode = ?";
Connection c=DBConnection.getInstance().getConnection();
PreparedStatement ps=c.prepareStatement(sql);
ps.setString(1, itemCode);
System.out.println(itemCode+" -----> item code is thiss");
ResultSet set=ps.executeQuery();
ArrayList<MainBatch> list=new ArrayList<>();
System.out.println(set.next()+" <-----result set is");
while (set.next()) {
MainBatch batch=new MainBatch(set.getString("batchNo"));
list.add(batch);
}
return list;
[
ResultSet.next()
將結果集的光標移動到下一行。 打印時,在while
循環之前,您將丟失第一行(或單行結果集中的唯一行)。 就我個人而言,我只是忽略了它,但是如果必須使用它,可以將結果提取到局部變量中:
boolean next = set.next();
System.out.println(next + " <-----result set is");
while (next) {
MainBatch batch=new MainBatch(set.getString("batchNo"));
list.add(batch);
next = set.next();
}
return list;
刪除此行。
System.out.println(set.next()+" <-----result set is");
您正在t調用set.next(),這會將結果集指針移動到下一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.