Boa tarde
Estou fazendo um teste de login e durante o metodo se o login for verdade uma variavel do tipo booleana recebe true, porém o método sempre retorna false, alguém sabe me dizer o porque?
E sim ele testa todos que estão no db antes de retornar.
Código abaixo
public class TesteDB {
/**
*
*/
public Boolean acesso;
public TesteDB() {
}
/**
*
* @param nome
* @param senha
* @return
*/
public Boolean TesteLogin(String nome, String senha) {
try {
// DBc db = new DBc();
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection cn = DriverManager.getConnection("jdbc:derby://localhost:1527/javadb");
Statement stmt = cn.createStatement();
ResultSet st = stmt.executeQuery("SELECT * FROM FUNCIONARIOS");
while (st.next()) {
if (nome.equals(st.getString("LOGIN")) && senha.equals(st.getString("SENHA"))) {
acesso = true;
} else {
acesso = false;
}
}
} catch (Exception t) {
t.printStackTrace();
}
System.out.println(acesso + " no return");
return acesso;
}
amigo você está fazendo isso dentro de um laço, entenda que o laço irá verificar todos os retornos do banco de dados se o ultimo retorno de false, mesmo algum já tiver dado true, o retorno do método será sempre false;
Não sei porque você quer retorna um statement no método, faz muito tempo que não uso jdbc puro, existe vários tutoriais aqui no gui e na internet de como fazer, dê uma olhada, tente depurar o código na sua IDE