Criar Login Verificando Banco

10 respostas
colored

Bom to criando um Login q verifica se o usuario digitou certo la no banco.....

Tive umas Ideias Vo Por o Metodo aki pq eu empakei n consigo pensar em nd =D..

public class LoginDAO {
private Connection c;
	
	public LoginDAO() throws SQLException{
		Connection c = ConnectionFactory.CriarConexao();
	}
	
	public List<Login> testaLogin() throws SQLException{
	
		List<Login> list = new ArrayList<Login>();
		String sql = "Select usuario,senha from Login";
		PreparedStatement ps = c.prepareStatement(sql);
		ResultSet rs = ps.executeQuery();
		
		while(rs.next()){
		Login login = new Login();
		ps.setString(1, login.getUsuario());
		ps.setString(2, login.getSenha());
		list.add(login);
		}
		rs.close();
		ps.close();
		return list;
	}
Ai Na Main Eu pensei num Metodo mais o Menos Assim Mas n deu mto certo =]
public void TestaUser(){
		try{
		List<Login> lista = new ArrayList<Login>();
		LoginDAO dao = new LoginDAO();
		lista = dao.testaLogin();
		
		for(Login login : lista){
			if(login.getUsuario().equals(TxtUser.getText()) && login.getSenha().equals(TxtPass.getText()) ){
				new StartSystem().setVisible(true);
			}
		}
		}
		catch (SQLException ex) {
			ex.printStackTrace();
		}
	}

Se alguem souber oq eu posso fazer mto obrigado =D

Ah ta dando Exception de Null Pointer

10 Respostas

yorgan

Não seria mais facil fazer o comando SQL tipo:

SELECT 1 
  FROM Login 
WHERE usuario = ? 
    AND senha = ?

e passar os valores do formulário nos curingas.
Depois seria só fazer um rs.next();
Se tiver uma linha, você sabe que os dados foram informados corretamente.

[]´s

colored

Ah sei la n consigo fazer, ta foda…

da uma mao =D

yorgan

ve se ajuda:

public boolean testaLogin(String login, String senha) throws SQLException{   
        boolean loginCorreto= false;
        String sql = "Select 1 from Login where usuario = ? and senha = ?";   
        PreparedStatement ps = c.prepareStatement(sql); 
        ps.setString(1, login);  
        ps.setString(2, senha);  
        ResultSet rs = ps.executeQuery();   
          
        if (rs.next()) loginCorreto = true;
        
        rs.close();   
        ps.close();   
        
        return loginCorreto;
    }
colored

N Funfo ;x…

Ta foda

mas tipo ai qdo eu chamo o metodo nos parametros eu passo os textbox neh?
ou n

jingle

cara acho que mais claro do que deve se passar como parametro para esta assinatura de método não existe.

public boolean testaLogin(String login, String senha) throws SQLException{

ou seja Duas string a primeira contendo o login do usuário e a segunda contendo a senha.

colored

hum ficava mais facil fala sim ou nao do q kerer fazer isso…
so perguntei se ali eu colocava txtpass.gettext()

jingle

é que eu não poderia lhe dizer sim ou não se saber de onde vem seus parametros, se eles vem de uma tela de e de um texField sim um getText resolve, mas pode ser que venha de outros lugares isto quem vai definir é você.

colored

Tipo usando Preparedstatement,

uma query assim “Select * From Cliente where cd_cliente like ?”
ai ps.setString(1, tx1.getText());

mas qdo e por exemplo Select * From Cliente where Nome_cliente like ?"
N traz nd

Como ficaria pra ser assim por exemplo o Usuario digita a ai ele traz todos com A…
Tentei varias coisa e nd

yorgan

para usar o like você deve fazer algo parecido com isso:

String sql = "SELECT * FROM Login where usuario like '%a%'";
//No seu comando SQL ficaria:
String sql = "SELECT * FROM Login where usuario like '%?%'";
ps.setString(1, "a");

Dessa forma você vai trazer todos os resultados que contiverem a letra ‘a’.
Os % fazem o papel de *. Se quiser com as letras ‘a’ e ‘b’, seria ‘%a%b%’.
Mas recomendo passar isso na string e não deixar isso definido no comando SQL.
Faça um método que formate a string para pesquisa, algo como:

private String formataPesquisa(String pesquisa) {
            return "%" + pesquisa + "%";
}

//E a utilização dele:
ps.setString(1, formataPesquisa("a"));

Que dessa maneira você pode implementar ele para receber mais de um parametro, ou formatar melhor a string. Mas dai isso é com você.

colored

Eu ja tinha conseguido…
na hora de fazer ps.setString(1, tx1.gettext()+ “%”)

eu axo

valeu a força =D

Criado 27 de março de 2008
Ultima resposta 28 de mar. de 2008
Respostas 10
Participantes 3