java - JDBC 5 + MYSQL 4 error on select -


i'm new in java world , i'm trying create userexist method check if user exists. well, i'm getting error: java.sql.sqlexception: resultset update. no data.

this error happens when login or password doesn't exist. , next returns false.

i'm using mysql jdbc 5 mysql 4

the code:

    public boolean userexist(user entereduser) {      try {          boolean userexist = false;          preparedstatement connquery = this.connection.preparestatement("select codigo, nome, login, senha funcionario login='"+entereduser.getlogin()+"' , senha='"+entereduser.getsenha()+"'");         resultset result = connquery.executequery();          if(result.next()) {              if((result.getstring("login") == entereduser.getlogin())&&(result.getstring("senha") == entereduser.getsenha())) {                  entereduser.setid(result.getint("codigo"));                 entereduser.setnome(result.getstring("nome"));                  userexist = true;              }          }          connquery.close();          return userexist;      } catch (sqlexception error) {          throw new runtimeexception(error);      }   } 

edited.

i changed code, i'm getting error in second time tried log on application. can logical error?

public boolean userexist(user entereduser) {      try {          boolean userexist = false;          preparedstatement query = this.connection.preparestatement("select codigo, nome, login, senha funcionario login=? , senha=?");         query.setstring(1,entereduser.getlogin());         query.setstring(2,entereduser.getsenha());          resultset result = query.executequery();          if(result.next()) {              if((result.getstring("login").equals(entereduser.getlogin()))&&(result.getstring("senha").equals(entereduser.getsenha()))) {                  entereduser.setcodigo(result.getint("codigo"));                 entereduser.setnome(result.getstring("nome"));                  userexist = true;              }          }          result.close();         query.close();          return userexist;      } catch (sqlexception error) {          throw new runtimeexception(error);      }   } 

thank you,

although above method isn't straightforwardly vulnerable sql injection, damn close. try parameters:

preparedstatement connquery = this.connection.preparestatement("select codigo, nome, login, senha funcionario login=? , senha=?"); connquery.setstring(1,entereduser.getlogin()); connquery.setstring(2,entereduser.getsenha()); 

also, try declaring result set , prepared statement outside try block can close them in block.

as actual question, i'd try running execute instead of executequery


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -