我写的一个用户登陆判断的JAVABEANpackage bean.js;
import java.sql.*;
public class UserRegist

String userid;
  String userpassword;


 public String getuserid()
 {
  return userid;
  }
 public void setuserid(String c)
  {
   userid=c;
  }
   
 public String getuserpassword()
 {
  return userpassword;
  }
 public void setuerpassword(String d)
  {
  userpassword=d;
  }
//连接数据库
  public UserRegist()
  {
   try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   }
   catch(ClassNotFoundException e) {}
  }  
  public Boolean getResult()
   {
    int a=0;
         int b=0;
    Boolean result=true;
    Connection con=null;
    Statement sql=null;
    ResultSet rs=null;
    try{
     con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
     sql=con.createStatement();
     String cd="SELECT * FROM UserInfo";
     rs=sql.executeQuery(cd);
     while(rs.next())
      { 
       String str1=rs.getString(1).trim();
          String str2=rs.getString(2).trim();
          if(str1.equals(userid)){ a=1;
          if(str2.equals(userpassword)) b=1;
}
}
if(a==1&&b==1)
  {result=true;}
  else{
   result=false;
     }
}
catch(SQLException e1) {}
return result;
}
}前台无法正确分辨 result的值

解决方案 »

  1.   

    如果是登录程序,你的sql有问题吧,你把所有用户select出来干什么,应该是"SELECT * FROM UserInfo where ID字段='"+userid+"'"
      

  2.   

    SQL没问题 程序是靠 返回值 来判断 有没有这条记录
    if(a==1&&b==1)
      {result=true;}
      else{
       result=false;
         }
    }
      

  3.   

    暂时不考虑那多 现在这种情况 肯定是返回值的问题 究竟怎么修改呢? 是怎么将结果正确传递给 getResult()?
      

  4.   

    你确定String str1=rs.getString(1).trim();
          String str2=rs.getString(2).trim();
    取到的是userId和pass吗,是不是字段对应错了,最好改成用你的字段名称去取字段的值比较好
      

  5.   

    肯定是正确的 就是不知道 返回的result的值 到底是怎么回事
      

  6.   

    package bean.js;
    import java.sql.*;
    public class UserRegist

    String userid;
      String userpassword;
     public String getuserid()
     {
      return userid;
      }
     public void setuserid(String c)
      {
       userid=c;
      }
       
     public String getuserpassword()
     {
      return userpassword;
      }
     public void setuerpassword(String d)
      {
      userpassword=d;
      }
    //连接数据库
      public UserRegist()
      {
      try{
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      }
      catch(ClassNotFoundException e) {}
      } 
      public Boolean getResult()
       {
       
       boolean result=true;
       Connection con=null;
       Statement sql=null;
       ResultSet rs=null;
       try{
        con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
        sql=con.createStatement();
        String cd="SELECT * FROM UserInfo where userid= +'"userid+"' and userpassword='"+userpassword+"'";
        rs=sql.executeQuery(cd);
        if(!rs.next())
         { 
         result=false;
    }
    }
    }
    catch(SQLException e1) {}
    return result;
    }
    }
      

  7.   

    怎么还是不行啊..我的前台 判断语句
    :<%
    if(userRegist.getResult()==true)
    {   out.println("<A href=choose.jsp>"+"登陆成功,点击进入主界面"+"</A>");
     }
     else(userRegist.getResult()==false)
     {  out.println("<A href=denglu.jsp>"+"用户名或密码错误,点击返回登陆界面"+"</A>");
     }%>
    没问题吧?怎么我无论输入 什么都是成功登陆 晕了 搞了一天 都没进展 大家继续指教
      

  8.   

    问题一大堆,估计是这里出问题了。
     try{
        con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
        sql=con.createStatement();
        String cd="SELECT * FROM UserInfo";
        rs=sql.executeQuery(cd);
        while(rs.next())
         { 
         String str1=rs.getString(1).trim();
              String str2=rs.getString(2).trim();
              if(str1.equals(userid)){ a=1;
              if(str2.equals(userpassword)) b=1;
    }
    }
    if(a==1&&b==1)
      {result=true;}
      else{
      result=false;
        }
    }
    catch(SQLException e1) {}
    如果你的sql语句或读数据的语句出错的话,直接出true,但你并不知道如什么问题。
    所以一定要catch(SQLException e1) {System.out.println(e.getMessage())};要不就象这样,这一大堆代码里有问题,但不知道是什么,所以直接中断了,返回值总是原来设的true;
      

  9.   

    该成这样 对吗?
      public UserRegist()
      {
       try{
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
       }
       catch(ClassNotFoundException e) {}
      }  
      public Boolean getResult()
       {
        Boolean result=true;
        Connection con=null;
        Statement sql=null;
        ResultSet rs=null;
        try{
         con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
         sql=con.createStatement();
         String cd="SELECT * FROM UserInfo WHERE userid= '"+userid+"' and userpassword='"+userpassword+"'";
        rs=sql.executeQuery(cd);
        if(!rs.next())
         { 
         result=false;
    }
    }
    catch(SQLException e) {
    System.out.println(e.getMessage());
    }
    return result;
    }
    }
      

  10.   

    public UserRegist()没定义返回类型,应该是:public ResultSet UserRegist()