Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Fillo更新Excel中的单元格时,获取错误为;NullPointerException“;_Java_Selenium_Selenium Webdriver_Appium - Fatal编程技术网

Java 使用Fillo更新Excel中的单元格时,获取错误为;NullPointerException“;

Java 使用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();

我正在使用下面的代码,我已经检查了路径名和工作表名是否正常。 我正在使用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();
            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问题的副本关闭是没有帮助的,因为询问者无法调试此库。据我所知,这个问题与这个库中错误处理的不足有关,我对此有一个答案,因此我重新提出了这个问题。