ssh连接oracle做登陆,遇到了空指针

图片说明我就做了一个简单的连接数据库登陆,求大神帮忙啊啊啊

代码

public class UserDaoImpl implements UserDao{

//查询验证用户是否存在
private SessionFactory sessionFactory;

public SessionFactory getSessionFactory() {
    return sessionFactory;
}

public void setSessionFactory(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
}

@Override
public User checkUser(User user) {
    Session session=sessionFactory.openSession();
    //SQL查询语句
    String hql = "from UserInfo where username = ? and password = ? ";
    //将查询出的结果放在list  
    Query query= session.createQuery(hql);
    query.setString(1, user.getUsername());
    query.setString(2, user.getPassword());
    List<User> users=query.list();
    //判断查询结果的第一个值
    if(users.size()>0){
        return users.get(0);
    }else{
        return null;
    }
}

}

哪里空指针,是30行吗? 26行和27行应该改成0和1,我记得下标是从0开始

赋值有问题。setString方法的值为什么要加引号? 你组装出来的语句是

 select * from UserInfo where username='user.getUsername()' and password='user.getPassword()'

setString方法后面的user.getUsername已经是一个字符串,不需要加引号;另外hql的语句是从下标0开始赋值的