java - My resultset is always returning false -
i have written following code:
string username=request.getparameter("username"); system.out.println(""+username); string password=request.getparameter("password"); system.out.println(""+password); connection con=getconnection.getconnectionbuilder(); system.out.println("inside"); preparedstatement pstmt=con.preparestatement("select password users username=? "); pstmt.setstring(1, "username"); resultset rs=pstmt.executequery(); try { system.out.println(""+rs.next()); while(rs.next()) { string pass=rs.getstring(1); system.out.println(""+pass); if(pass.equals("password")) { out.print("welcome back"+username); } else { out.print("wrong username/password combination"); } } } catch(exception e) { e.printstacktrace(); } pstmt.close(); con.close(); my rs.next() part getting evaluated false. how come happening so?
don't call rs.next() twice :
system.out.println(""+rs.next()); while(rs.next()) you moving iterator each time call it.
so if query returns 1 row, first rs.next() moves iterator point row, second rs.next() returns false , never enter while loop.
removing system.out.println(""+rs.next()); line should solve problem.
in addition, searching username called "username", doesn't exist, , comparing returned password "password", wrong.
fixing these problems give code :
pstmt.setstring(1, username); resultset rs=pstmt.executequery(); try { while(rs.next()) { string pass=rs.getstring(1); system.out.println(""+pass); if(pass.equals(password)) { out.print("welcome back"+username); } else { out.print("wrong username/password combination"); } } } catch(exception e) { e.printstacktrace(); }
Comments
Post a Comment