package SERVLET;//这是一个处理类(处理users表)——————操作UserBeanimport java.sql.*;
public class UserBeanCL { private Connection ct=null;
private PreparedStatement ps=null;
private ResultSet rs=null;

//验证用户的方法被处理了
public boolean checkUser(String u,String p)
{
boolean b=false;
try{
//得到连接
ConnDB cd=new ConnDB();
cd.getConn();

ps=ct.prepareStatement("select top 1 passwd from users where userName=u");
rs=ps.executeQuery();
if(rs.next())
{
 String dbPasswd=rs.getString(1);
 if(dbPasswd.equals(p))
 {
 b=true;  
   }
  }

}
catch(Exception e)
{
e.printStackTrace();
}
}
}在行  public boolean checkUser(String u,String p)处,出的问题是 这个方法需要一个返回一个boolean类型的结果 既:the method must return a result of type boolean。即使加上return b。
if(rs.next())
{
 String dbPasswd=rs.getString(1);
 if(dbPasswd.equals(p))
 {
 b=true;  
   }
  }
return b;
还是在上面的public boolean checkUser(String u,String p)处,出现同样问题。。有点不解了。。望各位说说哦~~

解决方案 »

  1.   

    return肯定得加,保存之后或提示?保存后试过运行没,有时候可能是eclipse没及时响应
      

  2.   

    if(dbPasswd.equals(p))
    {
    b=true;   
      }
    试问dbPasswd不等于p的时候,你的返回值呢?
      

  3.   

    把return b拿到try{}catch{}外面去
      

  4.   

    保存之后还是一样的问题。。
    照楼上说的我在如下加上return语句
    if(rs.next())
    {
     String dbPasswd=rs.getString(1);
     if(dbPasswd.equals(p))
     {
     b=true;  
       }
      }

    }
    return b;照理说也应该是对了吧~因为此种情况下,返回一个false啊~~可是还是一样的出现上述问题。。这又是怎么回事呢?
      

  5.   

    the method must return a result of type boolean。
     这个提示是.你这个方法的返回值必须是布尔类型的.否则就报错了
    你那个方法我没看到返回值阿.把这个返回值放在最外面.return b;
    也就是catch(Exception e)
    {
    e.printStackTrace();
    }
    后面.另外.你应该在catch后面加个finally{}把链接关闭了.然后在最外层价格return b;