<%@ page contentType="text/html; charset=gb2312" %><%@ page language="java" %><%@ page import="com.mysql.jdbc.Driver" %><%@ page import="java.sql.*" %><%
String driverName="com.mysql.jdbc.Driver";
String userName="root";
String userPasswd="123456";
String dbName="hoot";
String tableName="userinfo";
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password"
                +  "="+userPasswd; Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();        String Username=request.getParameter("Username");
        String Password=request.getParameter("Password");
   
        out.println(Username);
        out.println(Password);
String sql="SELECT * FROM userinfo where " +
                "username= 'Username' and password = 'Password'";
      
ResultSet rs = statement.executeQuery(sql); 
out.println(rs.next());
while(rs.next())
{
String SQLName =rs.getString("username");
    String SQLPassw = rs.getString("password");

if(SQLName==Username&&SQLPassw==Password)
out.println("登陆成功");
else
            out.print("密码错误");
}
        
rs.close(); statement.close(); connection.close(); %>数据库中明明有那条记录 但是查询时rs.next()是FALSE 不知道为什么 谢谢

解决方案 »

  1.   

    out.println(rs.next()); 
    while(rs.next()) 
    这边等于执行了2次了!
      

  2.   

    String sql="SELECT * FROM userinfo where " + 
                    "username= 'Username' and password = 'Password'"; 
    这个已经判读是否账号和密码对不对了!String SQLName =rs.getString("username"); 
        String SQLPassw = rs.getString("password"); if(SQLName==Username&&SQLPassw==Password) 
    out.println("登陆成功"); 
    else 
                out.print("密码错误"); 这边显得有点多余了!
      

  3.   

    sql写的有问题,改成下面试试
    String sql = "SELECT * FROM userinfo where username = '" 
                + Username + 
                "' and password = '"
                + Password +"'"; 
      

  4.   

    我的建议
    String sql="SELECT * FROM userinfo where " + 
                    "username= 'Username'"
    ResultSet rs = statement.executeQuery(sql); while(rs.next()) 

        String SQLPassw = rs.getString("password"); if(SQLPassw==Password) 
    out.println("登陆成功"); 
    else 
                out.print("密码错误"); 

    这样子写会好点哦!
      

  5.   

    注意单引号和双引号的作用区域和sql语句中对单引号的要求
      

  6.   

    sql写的有问题,改成下面试试 
    String sql = "SELECT * FROM userinfo where username = '" 
                + Username + 
                "' and password = '" 
                + Password +"'"; 
      

  7.   

    3楼的命中要害 谢谢了 现在给分了 再有就是2楼说的没错 但之前我的sql有错所以rs.next()都是false 这个sql在jsp就是麻烦 昨天整了一天都不明白 都是出错在逗点上啊之类的