JDBC遠程調用mysql存儲過程錯誤

mysql數據庫編譯安裝後,調試程序,使用普通用戶經過JDBC鏈接,遠程調用存儲過程發現報出java錯誤java.lang.NullPointerException......空指針異常的錯誤java

這是由於JDBC調用存儲過程時須要有show create procudure 權限或是有表mysql.proc的select權限。經過在JDBC鏈接屬性中設置noAccessToProcedureBodies=true(默認false)解決或是授予普通用戶相應的權限。

該noAccessToProcedureBodies=true的影響:
1. 調用存儲過程時,將沒有類型檢查,設爲字符串類型,而且全部的參數設爲in類型,可是在調用registerOutParameter時,不拋出異常。
2. 存儲過程的查詢結果沒法使用getXXX(String parameterName)的形式獲取,只能經過getXXX(int parameterIndex)的方式獲取。
mysql

最後是經過修改JDBC鏈接mysql的普通用戶的權限後(雖然授以全部權限能夠解決,可是不建議)。從新打開頁面正常。sql

相關文章
相關標籤/搜索