【问题标题】:Pojo values are not being retrieved correctlyPojo 值未正确检索
【发布时间】:2017-03-29 12:11:37
【问题描述】:

我有一个 POJO 的 ArrayList,我从从 JDBC 检索的结果集中填充,当在 while 循环中的第一个 System.out.print 语句中,使用 getStatus 方法完美检索数据,但是,在循环中检查时紧接着,getStatus 的返回值为 null。

附: status 字段是一个 String 对象,带有普通的 getter 和 setter,没什么花哨的。

while (result.next()) {
    POJO recordPojo = new POJO();
    recordPojo.setRefNo(result.getString(3));
    recordPojo.setSubmittedBy(result.getString(1));
    recordPojo.setCreatedDate(result.getDate(2).toString());
    recordPojo.setGuid(result.getString(4));
    recordPojo.setStatus(result.getString(5));
    System.out.println(" DBOPERATIONS  RESULT Ref No ----" + result.getString(3) + "      ===== " + result.getString(5) + " ====== " + recordPojo.getStatus());
    arryObj.add(recordPojo);
}
POJO x;
for (int k = 0; k < arryObj.size(); k++) {
    x = (POJO) arryObj.get(k);
    System.out.println(" DBOPERATIONS Ref No ----" + x.getRefNo() + "      ===== " + x.getSubject());
}

【问题讨论】:

  • 您可以请我们提供您的意见吗?你的代码中有一些奇怪的东西:(
  • 在您从结果集中加载之前,您的 arryObj 中是否已经存在某些内容?此外,您的第二个循环不是打印状态,它是打印主题,这不是在您的第一个循环中设置的。
  • 你能告诉我们完整的代码片段吗? result 的类型是什么?

标签: java jdbc


【解决方案1】:

我认为这像是一个错字(主题不是状态),但我会给你一个简短的解释:我认为你的循环 x.getSubject() 的第二个 System.out.println() 是错误的,你之前从来没有用你的结果填写这个字段,所以很明显它是null

所以你有两个选择:

  • 循环结果时填写此字段
  • 或者打印正确的字段而不是x.getSubject(),你应该打印x.getStatus()(它们不一样)

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    相关资源
    最近更新 更多