如何避免java中的空指针异常

时间:2015-10-07 23:17:37

标签: java mysql nullpointerexception

有两种方法

 public EmployeeBean viewEmployeeByID(String EmployeeID)

 public EmployeeBean findByID(String id) 

给出,它应该做的每种方法的描述

public EmployeeBean findByID(String id)
  • 此方法应使用JDBC select语句根据给定的Employee ID
  • 检索记录
  • 将字段存储在EmployeeBean中并返回Employee bean。
  • 如果是任何JDBCExceptions或者数据库中不存在id,则需要返回null值

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并获得空指针异常。

问题

  1. 我的代码段是否满足上述每种方法的所有要求。如果不是这样,请告诉我

  2. 有没有办法避免空指针异常?

1 个答案:

答案 0 :(得分:1)

由于您有2个return语句,因此您的代码段不会首先编译。 代码也符合条件。 但是在你的findById()内,你应该先做resultSet != null之前检查[AllowAnonymous]。那么这样就可以避免NPE。