[英]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.