![](/img/trans.png)
[英]Fillo library shows Invalid query, if the query has ' single quote in where condition value or while updating any cell
[英]When updating Cell in Excel using Fillo , getiing error as “NullPointerException”
我正在使用下面的代碼,我已經檢查了路徑名和工作表名稱都很好。 我正在使用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異常結果集:com.codoid.products.parser.SelectQueryParser.isWherePresent(com.codoid.products.fills.Select.getRecordset(Select.java :)處的java.lang.NullPointerException 47)在com.codoid.products.fillo.Connection.executeQuery(Connection.java:56)在GoodSolutionAgence.T_Test.main(T_Test.java:89)
我相信錯誤在這里:
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這個事實是該庫中的一個錯誤:它應該更好地處理此錯誤情況。
當您嘗試引用尚未初始化的變量時,將發生空指針異常
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方法中指定的路徑
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.