我就做了一个简单的连接数据库登陆,求大神帮忙啊啊啊
代码
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开始赋值的