try{
  request.setCharacterEncoding("utf-8");  //中文解析(必须有)  
   String name =request.getParameter("usename");
   String pwd =request.getParameter("pwd"); 
   boolean bSuccess=false;
   
  Class.forName("com.mysql.jdbc.Driver");
  Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/employee", "root", "123456");
  
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  ResultSet rs=stmt.executeQuery("select * from salary where name='" +name+ "'");    
       
      if(bSuccess){
         response.sendRedirect("TitleBar.jsp");  //当Mysql数据库中存在此用户,则跳转到"TitleBar.jsp"页面
         rs.close();
         stmt.close();
         conn.close();   
      }  if(!bSuccess){
    out.println("用户或者密码错误 ");
      }    
      } 
         
 
    
  }catch(ClassNotFoundException  e){
  out.println("驱动程序异常,加载错误!<br>");
  out.println(e.getMessage());
  } catch(SQLException e){
  out.println("数据库连接或者SQL查询异常!<br>");
  out.println(e.getMessage());   
  }catch(Exception e){
  out.println(e.getMessage());
  } 
  
其主要的功能是验证是否有用户,但是最终输出:用户或者密码错误! 我疑惑的是,我确认数据源连接没有错(Mysql数据库),并且也建了salary表,里面有用户和密码两项,应该可以连接进去。当我把sql语句换成select * from salary 时但又可以返回ture。用ResultSet rs=stmt.executeQuery(sql);之后rs怎么变空了?很纳闷啊,求大侠们相助啊~~~mysql数据库

解决方案 »

  1.   

    没有加入name条件的时候可以查询出来~~~
      则证明你没有变量为name这个用户!又或者是你name没有娶到值!
    调试一下、或者直接System.out.println(name);看看name的值就知道了!
      

  2.   


    楼主你敢告诉我这个Bsuccess是干什么的吗?就是总是提示用户名或者密码错误的?boolean bSuccess=false;if(!bSuccess){
    out.println("用户或者密码错误 ");
    }是不是应该
    if( rs.next()){
      //有该用户
    }else{
    out.println("用户或者密码错误 ");
    }
      

  3.   

    还有楼主的关闭链接不太好、
    如果差到了用户才关闭链接、
    那一直都是没查到用户你链接岂不是暴涨?需要在finally块里关闭链接。
      

  4.   

    正解
    或者查询到数据改变bSuccess值
    if(rs.next())bSuccess = true;
      

  5.   

    打印下name  应该是乱码 
      

  6.   

      楼主定义了一个bSuccess 缺始终另它的值为false 那怎么进入跳转的循环里? 楼主在rs.next()里面改为true
      

  7.   

     应该差不多就是这个问题 要么就把你的sql语句拿出来放到musql里面直接查询看看有结果不
      

  8.   

    name 可以取到值的。但是还是不能提示相同的错误
      

  9.   

    我写这个不是跟你这写是同一个吗。你看这个语句:bSuccess=rs.next();