我用的是hibernate 框架来连接的数据库。我想初步实现对hibernate的一个测试。用到了一个测试类。使用的是用户名和密码的核对关系来完成这个测试。问题是如果我用正确的用户名和密码来核对的时候是不出现错的,如果用错误的用户名和密码来核对就出现空指向了。初学者,希望高手帮忙!!!!!!!!!!!!!!

解决方案 »

  1.   

    密码错误的话它会返回一个的 Session 是 null
      

  2.   

    问题补充一下,下面是测试类的代码
    public class UserService {

    public boolean valid(String username, String password) {
    UserDAO test = new UserDAO();
    User user = test.getUser(username);
    if(password.equals(user.getPassword())) {
    return true;
    } else {
    return false;
    }
    }

    public static void main(String[] args) {
    UserService service = new UserService();
    boolean login = service.valid("11", "admin");
    System.out.println("验证结果:"+login);
    }
    }
      

  3.   

    if(password.equals(user.getPassword()))  就这句了   你用错误的 username 得不到 user 对象 所以 user.getPassword()空指针了
      

  4.   

    多谢了,我现在是给user对象加了个判断,看看是否为空,如果为空就重新定义它。
    请问还有更好的方法吗?先谢过了
      

  5.   

    其实你也可以加个   try{} catch (NullPointerException e){return false;}