我写了个音乐网站,测试中,我注册了5个账号,可是在登陆的时候为什么前4个都是登陆失败,就最后注册那个账号是登陆成功的,,,,,,
这是为什么???
我实在是找不到原因了,,麻烦大家救救

解决方案 »

  1.   

    说不定是前四个账号里面包含空格 而你在输入账户登录的时候没输入相应的空格
    最好对数据进行验证,在数据持续化时也得trim一下
      

  2.   


    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里的做测试写的
      

  3.   

    看来你真是初学者啊
    你的代码
    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的方式取值得了 干嘛还循环做比较呢
      

  4.   

    楼上正解,这样你每次都是验证的最后一个,前面的正确与否没关系,你可以在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; 
            } 
     
            } 
      

  5.   

    谢谢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楼的看到我的回复后,给讲一讲,谢谢了,
      

  6.   

    还想问一下,我列出来的音乐,在eclipse下的浏览器上都能播放,但是一用IE打开后有的怎么就放不了???