有两种方法
public EmployeeBean viewEmployeeByID(String EmployeeID)
public EmployeeBean findByID(String id)
给出,它应该做的每种方法的描述
public EmployeeBean findByID(String id)
public EmployeeBean viewEmployeeByID(String EmployeeID)
调用EmployeeDAO类的findByID(String id)方法。
如果找到记录,详细信息应存储在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并获得空指针异常。
问题
我的代码段是否满足上述每种方法的所有要求。如果不是这样,请告诉我
有没有办法避免空指针异常?
答案 0 :(得分:1)
由于您有2个return语句,因此您的代码段不会首先编译。
代码也符合条件。
但是在你的findById()
内,你应该先做resultSet != null
之前检查[AllowAnonymous]
。那么这样就可以避免NPE。