Hibernate查询数据库问题(用户登录的实现)。

来源:百度知道 编辑:UC知道 时间:2024/05/22 11:00:27
我想实现用户登录的功能。
表user(id,name,password),相应的类User
我现在数据库中已存在3条记录,使用hibernate的save插进去的。
1 user1 user1
2 user2 user2
3 user3 user3
在登录时如何实现查询,如果用户名和密码都对,则登录。
我是这样写的:
SessionFactory sf=new Configuration().configure().buildSessionFactory();
Session session=sf.openSession();
Criteria criteria=session.createCriteria(User.class);
Criterion cri1=Expression.like("name", username);
Criterion cri2=Expression.like("password",password);
criteria.add(cri1);
criteria.add(cri2);
List list=criteria.list();
Iterator it=list.iterator();
if(it.hasNext())
{
try
{ request.getRequestDispatcher("..\\xxx.jsp").forward(request,response);
}
catch (Throwable t)
{ getServletContext().log(t.getMessage());
}
}

上面的username和password是从表单中获取的数据。
我发现无论怎么办都登录不成功。后来我没加查询条件,在讲查询结果输出,发现始终就只有一条记录。而且这条记录是刚刚注册插入到数据库的记录。
请问

Criterion cri1=Expression.like("name", username);
应改成
Criterion cri1=Expression.eq("name", username);

另外建议判断list.size()>0
即可证明用户名密码正确

你为什么不知道接使用session.get方法呢
那样更简单一些啊!

没有分
我就不写代码了!

你能不能清晰的描述你的问题!