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

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

代码

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;
    }
}

}

3个回答

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

 select * from UserInfo where username='user.getUsername()' and password='user.getPassword()'
qq_32935311
qq_32935311 放错图了。。。看新图
4 年多之前 回复

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

qq_32935311
qq_32935311 放错图了。。。看新图
4 年多之前 回复

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

qq_32935311
qq_32935311 放错图了。。。看新图
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐