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

我想实现用户登录的功能。表user(id,name,password),相应的类User我现在数据库中已存在3条记录,使用hibernate的save插进去的。1user... 我想实现用户登录的功能。
表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是从表单中获取的数据。
我发现无论怎么办都登录不成功。后来我没加查询条件,在讲查询结果输出,发现始终就只有一条记录。而且这条记录是刚刚注册插入到数据库的记录。
请问谁能告诉我怎么办?

在答案能解决问题的情况下,追加50分。
数据库中已有相应的用户名,密码。我在用它登录的时候,登录不成功。表单中的值也能获得,就是查询出问题。
1楼,我已经试过了,不行。
2楼,我不是取不到表单的值,而是查询数据库不成功啊!!!!
展开
 我来答
百度网友1e8f797
2009-04-14 · 超过10用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:14.5万
展开全部
Criterion cri1=Expression.like("name", username);
应改成
Criterion cri1=Expression.eq("name", username);

另外建议判断list.size()>0
即可证明用户名密码正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
elan1986
2009-04-17 · TA获得超过549个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:113万
展开全部
你为什么不知道接使用session.get方法呢
那样更简单一些啊!

没有分
我就不写代码了!

你能不能清晰的描述你的问题!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式