PreparedStatement

4 respostas
L

já li umas 10 paginas do forum…

pessoal sou novato e estou com um problema em usar PreparedStatement.

segue o codigo:

public String buscaLogin(String LOGIN, String SENHA){
    String login=null;
    String senha=null;
    String retorna = null;
    ResultSet rs = null;
    Connection co = confereSenha2.getConnection();      
   // boolean status = false;  
    
    try{
        login = LOGIN;
        senha = SENHA;
    
        PreparedStatement ps = co.prepareStatement("select nome from funcionario where login=? and senha=?");
        ps.setString(1, login);
        ps.setString(2, senha);
        
        rs = ps.executeQuery();
        
        while (rs.next()){
            retorna = rs.getString("nome");
        }
        //retorna = senha;
        return retorna;
    }
    catch (Exception ex){
        ex.printStackTrace();
        retorna = "usuário invalido";
        return retorna;
    }
}
qdo eu uso:

PreparedStatement ps = co.prepareStatement(select nome from funcionario where login=?);

ps.setString(1, zaz);

 certo!
mas eu preciso conferir senha e login ao mesmo tempo e gostaria que no lugar de

ps.setString(1, zaz);

fosse

ps.setString(1, login);

se é que me entendem.
essas 2 modificaçoes sao possiveis?

vlw

4 Respostas

D

Pode não ser isso mas sus variavel esta esta null,pq não tenta passar a varialvel login do parametro do metodo
ps.setString(1, Login);

celso.martins

Não só possível, como altamente recomendável.

Caso contrário sua aplicação só fará login do “zaz”. =)

Caso não esteja dando certo, confira se você esteja passando os valores corretamente para os seus parâmetros na chamada do método.

Detalhe:

Você não precisa passar os parâmetros para variáveis internas do método. Pode usar diretamente os parâmetros no ps.setString.

Abraços!

StriderMGBR

Como foi dito acima, é altamente recomendável que você utilize o parametro recebido pelo metodo, senão você irá fazer somente o login pro zaz.

Abaixo segue uma “correção” do teu código. Dê uma analisada no que eu modifiquei e teste. Qualquer dúvida é só falar.

Abraço!

public String buscaLogin(String login, String senha){
	ResultSet rs;
	String retorno = "";
	String sql = "SELECT nome FROM funcionario WHERE login = ? AND senha = ?";
	try{
		PreparedStatement ps = confereSenha2.getConnection().prepareStatement(sql);
		ps.setString(1, login);
		ps.setString(2, senha);
		rs = ps.executeQuery();

		if(rs.next())
			retorno = rs.getString(1);
		else
			retorno = "Usuario invalido";
	}catch(Exception ex){
		ex.printStackTrace();
		retorno = "Usuario invalido";
	}finally{
		return retorno;
	}
}
L

vlw StriderMGBR e outros,

deu certo.

até a próxima

Criado 24 de novembro de 2007
Ultima resposta 24 de nov. de 2007
Respostas 4
Participantes 4