Java 使用Fillo更新Excel中的单元格时,获取错误为;NullPointerException“;
我正在使用下面的代码,我已经检查了路径名和工作表名是否正常。 我正在使用fillo版本fillo-1.15Java 使用Fillo更新Excel中的单元格时,获取错误为;NullPointerException“;,java,selenium,selenium-webdriver,appium,Java,Selenium,Selenium Webdriver,Appium,我正在使用下面的代码,我已经检查了路径名和工作表名是否正常。 我正在使用fillo版本fillo-1.15 public class T_Test { public static void main(String[] args) throws Exception{ try { com.codoid.products.fillo.Fillo fil_res = new com.codoid.products.fillo.Fillo();
public class T_Test {
public static void main(String[] args) throws Exception{
try {
com.codoid.products.fillo.Fillo fil_res = new com.codoid.products.fillo.Fillo();
com.codoid.products.fillo.Connection con_res = fil_res
.getConnection("C:\\Users\\admin\\workspace\\Good Connect\\Test_Data/Result\\LifePlanner_Result.xlsx");
String sql_res = "update Result_Data SET Product_ID = 'Sampoorna Raksha' Where TestCase_ID = 'TC1_SIS' ";
System.out.println(sql_res);
com.codoid.products.fillo.Recordset recordset_rec = con_res.executeQuery(sql_res);
con_res.close();
} catch (Exception e) {
System.out.println("Exception result set:" + e.toString());
}
}
}
错误如下:
java.lang.NullPointerException
异常结果集:java.lang.NullPointerException
位于com.codoid.products.parser.SelectQueryParser.isWherePresent(SelectQueryParser.java:66)
位于com.codoid.products.fillo.Select.getRecordset(Select.java:47)
位于com.codoid.products.fillo.Connection.executeQuery(Connection.java:56)
在goodsolutionagent.T_Test.main(T_Test.java:89)
尝试引用尚未初始化的变量时发生空指针异常
com.codoid.products.fillo.Connection con_res = fil_res
.getConnection("C:\\Users\\admin\\workspace\\Good Connect\\Test_Data/Result\\LifePlanner_Result.xlsx");
在这种情况下,con_res可能为null,因为getConnection方法无法正常工作
现在,当您尝试执行
con_res.executeQuery(sql_res);
它导致空指针异常
检查con_res是否正确初始化,并检查getConnection方法中指定的路径我相信错误在这里:
com.codoid.products.fillo.Recordset recordset_rec = con_res.executeQuery(sql_res);
您正在执行UPDATE
语句,而不是SELECT
查询。UPDATE
语句不会返回记录集,只返回更新的行数。因此,您希望使用executeUpdate
代替executeQuery
:
int numberOfRowsUpdated = con_res.executeUpdate(sql_res);
然而,Fillo库至少可以警告您使用了错误的方法。在我看来,它抛出NullPointerException的事实是这个库中的一个bug:它应该更好地处理这个错误条件。异常发生在您没有向我们展示的代码中。所以我们帮不了你。但这没关系,因为链接的Q&A对如何自己诊断和修复NPE有全面的帮助。@StephenC:对不起,但例外情况发生在第三方库中,我不认为源代码不可用。因此,将此问题作为规范NPE问题的副本关闭是没有帮助的,因为询问者无法调试此库。据我所知,这个问题与这个库中错误处理的不足有关,我对此有一个答案,因此我重新提出了这个问题。