Validar login comparando usuario e senha com Banco Dados? [ Resolvido ]

Olá Pessoal Alguem poderia me ajudar nao estou conseguindo validar o login para acessar o programa,
eu acesso o programa com a senha q esta cadastrada abaixo mas depois acesso um menu e cadastro um novo usuario mas nao consigo compara-lo para validar o ligin.

o codigo abaixo:

Frama Login:

[code]package Farma.View.Contoller;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Farma.Listeners.BotoesListeners;
import Farma.Listeners.PanelBotoes;

public class FrameLogin extends JDialog{
private static final long serialVersionUID = 1L;

private PanelLogin panelLogin;
private PanelBotoes panelBotoes;

private FramePrincipal framePrincipal;

public FrameLogin(FramePrincipal owner, String titulo, boolean modal) {
super(owner, titulo, modal);
framePrincipal = owner;
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(new Dimension(220, 165));
setResizable(false);
initialize();

}

private void initialize() {
add(getPanelLogin(), BorderLayout.NORTH);

add(getPanelBotoes(), BorderLayout.SOUTH);
getRootPane().setDefaultButton(getPanelBotoes().getOkButton());
}

private PanelLogin getPanelLogin() {
if (panelLogin == null) {
panelLogin = new PanelLogin();
}
return panelLogin;
}

private PanelBotoes getPanelBotoes() {
if (panelBotoes == null) {
panelBotoes = new PanelBotoes();

panelBotoes.addBotoesListener(new BotoesListeners() {

@Override
public void cancelarPerformed() {
dispose();

}

@Override
public void okPerformed() {
boolean login = verif_login();
boolean login2 = validar();
if ((login) == true || (login2) == true) {
framePrincipal.getfarmacia().setEnabled(true);
framePrincipal.getRelat().setEnabled(true);
framePrincipal.getAjuda().setEnabled(true);
dispose();

				}

else {
panelLogin.getUsuarioField().requestFocus();
panelLogin.getUsuarioField().selectAll();

}

}

});

}
return panelBotoes;
}

@SuppressWarnings(“deprecation”)
public boolean verif_login() {
[color=red]String usuario = “admin”; // senha padrao
String senha = “admin”; // senha padrao[/color]
if ((panelLogin.getUsuarioField().getText().equalsIgnoreCase(usuario))
|| (panelLogin.getSenhaField().getText().equals(senha)))

{
JOptionPane.showMessageDialog(null, “Acesso Permitido”);

return true;
} else {
JOptionPane.showMessageDialog(null,
“Usuários ou senha incorretos!!”, “Notificação”,
JOptionPane.WARNING_MESSAGE);

return false;
}
}

/* @SuppressWarnings(“deprecation”) [color=red]// AQUI TENTEI PERCORREI O ARRAY QUE TEM OS DADOS NO BANCO DE DADOS PÁRA VALIDAR O LOGIN[/color]public boolean validar(){

@SuppressWarnings(“unused”)
UsuarioBD usuarioBD = new UsuarioBD();
try{
for( Usuario valida : usuarioBD.consulta()){
if ((panelLogin.getUsuarioField().getText().equalsIgnoreCase(valida.getUsuario_login()))
&& (panelLogin.getSenhaField().getText().equals(valida.getSenha_login())))
{

JOptionPane.showMessageDialog(null, “Acesso Permitido”);

return true;
}

}}

catch (Exception e) {
return false;
}

}*/

}

//==========================================================================
UsuarioBD que faz a busca o banco:

public ArrayList consulta() throws SQLException{

String url = “jdbc:postgresql://localhost:5432/farmacia”;
String user = “postgres”;
String password = “admin”;

ArrayList result = new ArrayList();

Connection connection = DriverManager.getConnection(url, user, password);
PreparedStatement preparedStatement = connection.prepareStatement(“select * from cad_usuario order by usuario_login”);
ResultSet rs = preparedStatement.executeQuery();

while (rs.next()) {

Usuario usuario = new Usuario();

usuario.setId(rs.getString(“id”));
usuario.setUsuario_login(rs.getString(“usuario_login”));
usuario.setSenha_login(rs.getString(“senha_login”));

result.add(usuario);
}
connection.close();
preparedStatement.close();
rs.close();

return result;
} [/code]

oh cara vc poderia editar seu post e colocar as tags de code para poder facilitar a visualização do seu codigo
vlw
abs

[code]public boolean validar(){

	boolean val = false;
	UsuarioBD usuarioBD = new UsuarioBD();
	try{
		for( Usuario valida : usuarioBD.consulta()){
			if ((panelLogin.getUsuarioField().getText().equalsIgnoreCase(valida.getUsuario_login()))
					&& (panelLogin.getSenhaField().getText().equals(valida.getSenha_login())))
			{
				
				JOptionPane.showMessageDialog(null, "Acesso Permitido");

		 val = true;
		}
		}}
	
		
	
	catch (Exception e) {
		JOptionPane.showMessageDialog(null,
			"Usuários ou senha incorretos!!", "Notificação",
			JOptionPane.WARNING_MESSAGE);
		val = false;
		}
	
	return val ;

	
}

}[/code]

É bem mais facil vc usar uma tabela de usuarios e fazer um select passando o usuario e senha para consultar no banco.

bem mais simples e mais rapido do que esse modo que vc esta fazendo.

[]'s

Vdd msm…
vou moda-lo aqui.
vlwss

Cara não entendi por que usa esse for:

Voce deveria montar um objeto usuario com os dados do formulário:

E chamar um metodo validaLogin passando o usuario de parametro:
Ex:

if(new UsuarioDB().validaLogin(usuario)){
  //FAZ O QUE QUIZER
}else{
  //usuario invalido
}

O Valida login retorna um booelan

public boolean validaLogin(Usuario usuario){
         Connection connection = DriverManager.getConnection(url, user, password);   
         PreparedStatement preparedStatement = connection.prepareStatement("select usuario from cad_usuario where usuario = ? and senha ?");   
         preparedStatement.setString(1,usuario.getLogin());
         preparedStatement.setString(2,usuario.getSenha());
         ResultSet rs = preparedStatement.executeQuery();   
         return rs.next();
}

Pedrosa Obrigado pela dica, do geito que falou é bem mais simples, mas acabei fazendo do geito abaixo msm e ja esta ok.

abç…

[code]package Farma.View.Contoller;

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

import Farma.DAO.UsuarioBD;
import Farma.Listeners.BotoesListeners;
import Farma.Listeners.PanelBotoes;
import Farma.Model.Usuario;

public class FrameLogin extends JDialog{
private static final long serialVersionUID = 1L;

private PanelLogin panelLogin;
private PanelBotoes panelBotoes;

private FramePrincipal framePrincipal;

public FrameLogin(FramePrincipal owner, String titulo, boolean modal) {
	super(owner, titulo, modal);
	framePrincipal = owner;
	setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	setSize(new Dimension(220, 165));
	setResizable(false);
	initialize();

}

private void initialize() {
	add(getPanelLogin(), BorderLayout.NORTH);
	
	add(getPanelBotoes(), BorderLayout.SOUTH);
	getRootPane().setDefaultButton(getPanelBotoes().getOkButton());
}

private PanelLogin getPanelLogin() {
	if (panelLogin == null) {
		panelLogin = new PanelLogin();
	}
	return panelLogin;
}

private PanelBotoes getPanelBotoes() {
	if (panelBotoes == null) {
		panelBotoes = new PanelBotoes();

		panelBotoes.addBotoesListener(new BotoesListeners() {

//=================================================================

	public void cancelarPerformed() {
				dispose();

			}

			@Override
			public void okPerformed() {
				boolean login = validar();
				boolean admin = verif_login();
				
				if ((login) == true || (admin)== true) {
					
					framePrincipal.getfarmacia().setEnabled(true);
					framePrincipal.getRelat().setEnabled(true);
					framePrincipal.getAjuda().setEnabled(true);
					JOptionPane.showMessageDialog(null, "Acesso Permitido");
					dispose();

				}

				else {
					panelLogin.getUsuarioField().requestFocus();
					panelLogin.getUsuarioField().selectAll();
					panelLogin.getSenhaField().selectAll();
					panelLogin.usuarioField.setText("");
				 
					JOptionPane.showMessageDialog(null,"Usuário ou senha incorreto!!", "Notificação",
							JOptionPane.WARNING_MESSAGE);
				
					}
				}
		});

	}
	return panelBotoes;
}

//=======================================================================================================
// acesso principal senha de admim
@SuppressWarnings(“deprecation”)
public boolean verif_login() {
String usuario = “admin”;
String senha = “admin”;
if ((panelLogin.getUsuarioField().getText().equalsIgnoreCase(usuario))
&& (panelLogin.getSenhaField().getText().equals(senha))) {
return true;
} else {

		return false;
	}
}

//======================================================================================
// compara usuario e senha com o banco de dados atravez arraylist
@SuppressWarnings(“deprecation”)
public boolean validar(){

	boolean val = false ;
	UsuarioBD usuarioBD = new UsuarioBD();
	try{
		for( Usuario valida : usuarioBD.consulta()){
			if ((panelLogin.getUsuarioField().getText().equalsIgnoreCase(valida.getUsuario_login()))
					&& (panelLogin.getSenhaField().getText().equals(valida.getSenha_login())))
			{
				
				val = true;
		 }}}
	
catch (Exception e) {				
		val = false;
	 }
		
		return val ;

	}

}

#####################################################################
Consulta Banco:
public ArrayList consulta() throws SQLException{

String url = "jdbc:postgresql://localhost:5432/farmacia";
String user = "postgres";
String password = "admin";

ArrayList <Usuario> result = new ArrayList<Usuario>();

Connection connection = DriverManager.getConnection(url, user, password);
PreparedStatement preparedStatement = connection.prepareStatement("select * from cad_usuario order by usuario_login");
ResultSet rs = preparedStatement.executeQuery();


while (rs.next()) {
	
	Usuario usuario = new Usuario();
	
	usuario.setId(rs.getString("id"));
	usuario.setUsuario_login(rs.getString("usuario_login"));
	usuario.setSenha_login(rs.getString("senha_login"));
	
	

	result.add(usuario);
}
connection.close();
preparedStatement.close();
rs.close();

return result;

}
}[/code]