Boa tarde,
Estou desenvolvendo um sistema de login com SQL Server 2008 R2.
Eu tenho 2 classes uma delas LoginDB e a outra de UILogin, para a interface com o usuário.
package source.DB;
import java.sql.*;
import factory.*;
import javax.swing.*;
public class LoginDB {
private Connection connection;
//String nomeUsuario;
//String senha;
public LoginDB(){
this.connection = new ConnectionFactory().getConnection();
}
public int validaLogin(String nomeUser, String pass) throws SQLException{
String sql = "SELECT nomeUsuario, senha from tabela_teste" +
"WHERE nomeUsuario='"+nomeUser+"'" +
" AND senha='"+pass+"'";
int auxiliar=0;
Statement stmt = null;
try{
stmt=connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
auxiliar=auxiliar + 1;
}
connection.close();
}
catch(SQLException u){
throw new SQLException(u);
}
return auxiliar;
}
}
UILogin - Action Listener do Botao de Login...
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
LoginDB logindb = new LoginDB();
int count = logindb.validaLogin(textFieldNomeUsuario.getText(), passwordField.getText());
if (count == 1){
UIControle.UIControl();
}
else if (count > 1){
JOptionPane.showMessageDialog(null, "Usuário duplicado no Bando de Dados. Contate o administrador.");
}
}
catch(SQLException ex){
JOptionPane.showMessageDialog(null, "O usuário "+textFieldNomeUsuario.getText()+" não existe no Bando de Dados!");
}
}
});
Minha ideia foi a seguinte. Acessar o banco de dados e verificar a quantidade de linhas que há com o nome de usuario e senha digitados nos Textbox. Havendo 1 linha apenas, acesso concedido e etc…
O meu problema é o seguinte. Para qualquer valor que tenha no textbox de usuario e senha, mesmo que exista esse cadastro no banco de dados, o programa me retorna o SQLException, ou seja, me retorna o JOptionPane com a mensagem: “O usuário “+textFieldNomeUsuario.getText()+” não existe no Bando de Dados!”.
Qual o possivel erro que posso estar cometendo nesse programa?
Agradeço desde já.