我想连接数据库做一个登录页面的效果,但是在循环那一块出现问题,麻烦各位前辈帮忙解决一下,代码如下:(最好把解决后的代码发过来,谢谢!)                  String url = "jdbc:mysql://localhost:3306/javaweb";
     String username = "root";
     String password = "admin";
     Connection con = null;
    
     try{
     Class.forName("com.mysql.jdbc.Driver");
    
     con = (Connection) DriverManager.getConnection(url,username,password);
     }catch(ClassNotFoundException e){
     System.out.println("找不到驱动类!");
     }catch(SQLException e){
     System.out.println("连接MYSQL数据库失败!");
     }
    
     try{
     Statement sta = (Statement) con.createStatement();
     String str = "select * from user";
     ResultSet res = (ResultSet) sta.executeQuery(str);
    
     while(res.next()){
     int userid = res.getInt(1);
     String usename = res.getString(2);
     String userpsw = res.getString(3);
    
     System.out.println("用户ID:"+userid+"     ");
     System.out.println("用户名:"+usename+"     ");
     System.out.println("密     码: "+userpsw+"     "+"<br>");
    
     if(usename.equals(uname) && userpsw.equals(passw)){
         request.getRequestDispatcher("/MVC/LoginTure.jsp").forward(request, response);
         //System.out.println("aa");
        
         }else{
         request.getRequestDispatcher("/MVC/LoginFalse.jsp").forward(request, response);
         //System.out.println("bb");
         //System.exit(0);
         }
     }
     }catch(SQLException e){
     System.out.println("查询所有用户失败!");
     }

解决方案 »

  1.   

        String url = "jdbc:mysql://localhost:3306/javaweb"; 
        String username = "root"; 
        String password = "admin"; 
        Connection con = null; 
        PreparedStatement pstmt = null;
    ResultSet    rs=null;    try{ 
        Class.forName("com.mysql.jdbc.Driver"); 
        
        con = (Connection) DriverManager.getConnection(url,username,password); 
        }catch(ClassNotFoundException e){ 
        System.out.println("找不到驱动类!"); 
        }catch(SQLException e){ 
        System.out.println("连接MYSQL数据库失败!"); 
        } 
         PreparedStatement pstmt = null;
        try{ 
     pstmt =con.prepareStatement("select * from user where uname=? and passw=?");
    //UseName,PassWord   为页面传过来的值。
     pstmt.setString(1,UseName);
        pstmt.setString(2,PassWord);
    rs=pstmt.executeQuery();
        if(rs!=null && rs.next()){ 
            request.getRequestDispatcher("/MVC/LoginTure.jsp").forward(request, response); 
            //System.out.println("aa"); 
            
            }else{ 
            request.getRequestDispatcher("/MVC/LoginFalse.jsp").forward(request, response); 
            //System.out.println("bb"); 
            //System.exit(0); 
            } 
        } 
        }catch(SQLException e){ 
        System.out.println("查询所有用户失败!"); 
        } //数据库结束关闭连接。
        
              这样写可用....注意从表单中传过的值和...数据库中的字段..看写错了没..
      

  2.   

    什么错误也没说。。
    if(usename.equals(uname) && userpsw.equals(passw)){ 
    这个uname,passw在哪儿,我只看到上面的
    String username = "root"; 
    String password = "admin"; 
      

  3.   

    我能看出来的就这两个地方了,不过您那while里的东东可以分层在做哦,就是将业务逻辑层,界面,还有数据层分开哦
      

  4.   

    兄弟感觉没错哦!就是while(){}里有点乱哦!
      

  5.   

    你的代码有点乱,以后要多多注意规范性,这样改bug也会快一些
    我看了一下,你这里循环没有什么问题,可能你没有导入mysql jar包,还有你结束数据库连接后要把连接关闭
    我按照自己的环境稍微改了下,可以用了
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class TestMySql { static Connection conn = null;
    static Statement sta = null;
    static ResultSet res = null; public static void main(String[] args) { try { Class.forName("org.gjt.mm.mysql.Driver");
    String url = "jdbc:mysql://localhost:3306/mydb";
    String userName = "root";
    String password = "password";
    conn = DriverManager.getConnection(url, userName, password);
    sta = conn.createStatement();
    String str = "select * from user";
    res = (ResultSet) sta.executeQuery(str); while (res.next()) {
    int userid = res.getInt(1);
    String usename = res.getString(2);
    String userpsw = res.getString(3); System.out.println("用户ID:" + userid);
    System.out.println("用户名:" + usename);
    System.out.println("密    码: " + userpsw); /*
     * if(usename.equals(uname) && userpsw.equals(passw)){
     * request.getRequestDispatcher("/MVC/LoginTure.jsp").forward(request,
     * response); //System.out.println("aa");
     * 
     * }else{
     * request.getRequestDispatcher("/MVC/LoginFalse.jsp").forward(request,
     * response); //System.out.println("bb"); //System.exit(0); }
     */
    }
    } catch (SQLException e) {
    System.out.println("查询所有用户失败!");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } finally {
    close();
    }
    }

    public static void close(){
    try{
    if(conn!=null){conn.close();}
    if(sta!=null){sta.close();}
    if(res!=null){res.close();}
    }catch(Exception e){
    e.printStackTrace();
    }
    }}