gpt4 book ai didi

java - 空指针异常无法修复

转载 作者:行者123 更新时间:2023-11-29 00:06:23 28 4
gpt4 key购买 nike

我正在用 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;

关于java - 空指针异常无法修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27288067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com