2017-03-29 60 views
0

我有一个POJO的ArrayList,我从JDBC检索的结果集中填充,但是在while循环中的第一个System.out.print语句中,使用getStatus方法完全检索数据,但是,当在那个之后的循环中检查时,getStatus的返回值为null。Pojo值没有被正确检索

P.S.状态字段是一个带有普通旧式getter和setter的String对象,没什么特别。

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()); 
} 
+0

请问您可以为我们提供您的意见吗?在您的代码中有一些奇怪的东西:( –

+0

在从结果集中加载之前,您的arryObj中是否有东西?还有,您的第二个循环不是打印状态,它是打印主题,它不会在第一个循环中设置。 –

+0

你能告诉我们完整的代码片段吗?结果的类型是什么? –

回答

3

我认为这就像一个错字(主题不是状态),但我会给你一个解释短:我认为你是错在循环x.getSubject()的第二个System.out.println(),你永远不要请在填写此字段之前填写您的结果,因此很明显它是null

所以,你有两个选择:

  • 填补了该领域,当你循环的结果是
  • 或打印正确的领域,而不是x.getSubject(),你应该打印x.getStatus()(他们是不一样的)