麻烦老鸟来给我解答一下,有点小问题,不知道哪里错了 我写了个音乐网站,测试中,我注册了5个账号,可是在登陆的时候为什么前4个都是登陆失败,就最后注册那个账号是登陆成功的,,,,,,这是为什么???我实在是找不到原因了,,麻烦大家救救 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说不定是前四个账号里面包含空格 而你在输入账户登录的时候没输入相应的空格最好对数据进行验证,在数据持续化时也得trim一下 public boolean haveUser(String username,String password) throws Exception{ String hql= (String) CacheManager.getInstance().getCache("HQL-Cache").get("front.findUser_2").getValue(); Session session=HibernateSessionFactory.getSession(); Query query=session.createQuery(hql); List list=query.list(); Iterator<Object[]> iterator=list.iterator(); String temp1=null; String temp2=null; while(iterator.hasNext()){ Object[] obj=iterator.next(); temp1=obj[0].toString(); temp2=obj[1].toString(); } if(temp1.equals(username) && temp2.equals(password)){ return true; }else{ return false; } }这是DAO里的做测试写的 看来你真是初学者啊你的代码while(iterator.hasNext()){ Object[] obj=iterator.next(); temp1=obj[0].toString(); temp2=obj[1].toString(); } if(temp1.equals(username) && temp2.equals(password)){ return true; }else{ return false; }这样循环下来 temp1和temp2只能是最后一个账户的信息既然用了Hibernate就用Hibernate的方式取值得了 干嘛还循环做比较呢 楼上正解,这样你每次都是验证的最后一个,前面的正确与否没关系,你可以在while语句中加个break,这样只到检查到正确的就会跳出。代码如下:while(iterator.hasNext()){ Object[] obj=iterator.next(); temp1=obj[0].toString(); temp2=obj[1].toString(); if(temp1.equals(username) && temp2.equals(password)){ return true; break; }else{ return false; } } 谢谢6楼和7楼的帮助,,问题已经解决,改写后是这样的 public boolean haveUser(String username,String password) throws Exception{ String hql= (String) CacheManager.getInstance().getCache("HQL-Cache").get("front.findUser_2").getValue(); Session session=HibernateSessionFactory.getSession(); Query query=session.createQuery(hql); List list=query.list(); Iterator<Object[]> iterator=list.iterator(); while(iterator.hasNext()){ Object[] obj=iterator.next(); if(username.equals(obj[0]) && password.equals(obj[1])){ return true; } } return false; }我还想知道一下6楼说的,用Hibernate取值是怎么个取法?学是肯定学了,只是我记性不是太好,还望6楼的看到我的回复后,给讲一讲,谢谢了, 还想问一下,我列出来的音乐,在eclipse下的浏览器上都能播放,但是一用IE打开后有的怎么就放不了??? 怎么整合ssh三大框架 我使用myeclipse6.0向oracle 10g中写数据无法写进去 XML生成JAVABEAN java操作数据库问题 各位兄弟,我想问一个有关登陆验证的问题.....小弟急啊! 新手求助:如何取三位有效数字 jsp初学小问题 求帮助 Spring 实现BeanPostProcessor 之后 启动报 NullPointerException hibernate的sava方法改写 保存对象list 用html怎样描述这样一个图片呢? Struts中Text标签中赋值问题 帮忙看看这个jsp代码错那了
最好对数据进行验证,在数据持续化时也得trim一下
public boolean haveUser(String username,String password) throws Exception{
String hql= (String) CacheManager.getInstance().getCache("HQL-Cache").get("front.findUser_2").getValue();
Session session=HibernateSessionFactory.getSession();
Query query=session.createQuery(hql);
List list=query.list();
Iterator<Object[]> iterator=list.iterator();
String temp1=null;
String temp2=null;
while(iterator.hasNext()){
Object[] obj=iterator.next();
temp1=obj[0].toString();
temp2=obj[1].toString();
}
if(temp1.equals(username) && temp2.equals(password)){
return true;
}else{
return false;
}
}
这是DAO里的做测试写的
你的代码
while(iterator.hasNext()){
Object[] obj=iterator.next();
temp1=obj[0].toString();
temp2=obj[1].toString();
}
if(temp1.equals(username) && temp2.equals(password)){
return true;
}else{
return false;
}
这样循环下来 temp1和temp2只能是最后一个账户的信息
既然用了Hibernate就用Hibernate的方式取值得了 干嘛还循环做比较呢
while(iterator.hasNext()){
Object[] obj=iterator.next();
temp1=obj[0].toString();
temp2=obj[1].toString();
if(temp1.equals(username) && temp2.equals(password)){
return true;
break;
}else{
return false;
}
}
String hql= (String) CacheManager.getInstance().getCache("HQL-Cache").get("front.findUser_2").getValue();
Session session=HibernateSessionFactory.getSession();
Query query=session.createQuery(hql);
List list=query.list();
Iterator<Object[]> iterator=list.iterator();
while(iterator.hasNext()){
Object[] obj=iterator.next();
if(username.equals(obj[0]) && password.equals(obj[1])){
return true;
}
}
return false;
}
我还想知道一下6楼说的,用Hibernate取值是怎么个取法?学是肯定学了,只是我记性不是太好,还望6楼的看到我的回复后,给讲一讲,谢谢了,