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楼,我不是取不到表单的值,而是查询数据库不成功啊!!!! 展开
表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楼,我不是取不到表单的值,而是查询数据库不成功啊!!!! 展开
展开全部
Criterion cri1=Expression.like("name", username);
应改成
Criterion cri1=Expression.eq("name", username);
另外建议判断list.size()>0
即可证明用户名密码正确
应改成
Criterion cri1=Expression.eq("name", username);
另外建议判断list.size()>0
即可证明用户名密码正确
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
你为什么不知道接使用session.get方法呢
那样更简单一些啊!
没有分
我就不写代码了!
你能不能清晰的描述你的问题!
那样更简单一些啊!
没有分
我就不写代码了!
你能不能清晰的描述你的问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询