空指針異常有兩種方法如何避免在java中
public EmployeeBean viewEmployeeByID(String EmployeeID)
public EmployeeBean findByID(String id)
考慮,什麼是應該每種方法的描述做
public EmployeeBean findByID(String id)
- 這個方法應該使用JDBC選擇語句以基於給定的員工ID檢索記錄,
- 將字段存儲在EmployeeBean中並返回Employee bean。
- 在任何JDBCExceptions的或情況下,如果ID不存在於數據庫中,然後空值需要返回
public EmployeeBean viewEmployeeByID(String EmployeeID)
調用的所述findByID(字符串ID)方法EmployeeDAO類。
如果找到記錄,詳細信息應存儲在EmployeeBean對象中並返回。
如果記錄未找到或者具有INVALID empID(例如空字符串「」),那麼應該將EmployeeBean指定爲null並返回。
代碼如下書面每種方法
public EmployeeBean findById(String id){
EmployeeBean emp = null;
try{
statement = DBUtil.getDBConnection().prepareStatement("SELECT * FROM EMPLOYEE_TBL WHERE EMPID=?");
statement.setString(1,id);
if(statement.executeUpdate() == 1){
resultSet = statement.getResultSet();
while(resultSet.next()){
emp = new EmployeeBean(
resultSet.getString(1),
resultSet.getString(2),
resultSet.getDate(3),
resultSet.getString(4),
resultSet.getFloat(5)
);
}
return emp;
}
else{
return null;
}
}catch(SQLException e){
return null;
}catch(NullPointerException e){
return null;
}
}
public EmployeeBean viewEmployeeByID(String empId){
if((employeeBean = this.database.findById(empId)) != null)
return employeeBean;
return (EmployeeBean = null);
}
如果我試圖找到一個ID是不存在於數據庫中,它返回null,我得到空指針異常。
問題
難道我的片段statisfy上述每種方法給出的所有要求。如果不是這樣,請讓我知道
有沒有什麼辦法可以避免空指針異常?
您的viewEmployeeByID編譯,我不這麼認爲 –
*「如果沒有找到記錄或者具有INVALID empID(例如空字符串」「),那麼應該給EmployeeBean指定null並返回。」*似乎滿足要求。當你從這些方法中得到一個值時,你需要測試一個'null'返回結果。另一種解決方案是拋出一個「未找到記錄」的異常,但這可能只是有點過分 – MadProgrammer
@JunedAhsan它編譯但每當我通過錯誤的編號我得到空錯誤 – James92