bom pessoal me ajudem, estou tentando valisdar o login de um sistema, mas está me pedindo par fazer uma classe, abaixo o codigo:
codigo do banco de dados:
[/quote]
publicValidaLoginsearchByCod(Stringvl)throwsSQLException{Stringsql="select from tab_login where login , senha like? ";//Compila/preparainstruçãoSQLparaexecuçãoPreparedStatementstmt=(PreparedStatement)conexaoLogin.prepareStatement(sql);//Preencheparâmetros(?)dainstruçãoSQLstmt.setString(1,"login");stmt.setString(2,"senha");//ExecutainstruçãoSQLdeconsulta//ArmazenaresultadonaconsultaemumobjetodotipoResultSetResultSetrs=stmt.executeQuery();//InstancianovoobjetodotipologinLoginvalidalogin=newLogin();while(rs.next()){validalogin.setLogin(rs.getString("login"));validalogin.setSenha(rs.getString("senha"));}rs.close();stmt.close();return(validalogin);}[quote]
e na janela para chamar a classe ValidaLogin
[quote]
private void jBAcessarActionPerformed(java.awt.event.ActionEvent evt) {
if (jTFUsuario.getText().equals("") || jPSenha.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Os campos não podem ser vazios");
} else {
Login vl = new Login();
vl.setLogin(jTFUsuario.getText());
vl.setSenha(jPSenha.getText());
try {
TelaLoginDao dao = new TelaLoginDao();
vl = dao.ValidaLogin.searchByCod(vl);
JOptionPane.showMessageDialog(this, "Tela_Principal");
System.exit(0);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Senha ou login não conferem" + ex);
}
}
}
já arrumei o comando sql, mas mesmo assim esta aparecendo erro no ValidaLogin
henriqueluz
Qual é o erro?
rosawestphal
diz que tenho que criar uma classe ValidaLogin no pacote
marcosharbs
da uma olhada se o import da classe ValidLogin está correto
e também o modificador da classe ValidaLogin
melhor postar o código fonte inteiro pro pessoal poder achar o erro
rosawestphal
tela login
packagepeculio_forms;importLogica.ValidaLogin;importdao_peculio.TelaLoginDao;importjava.sql.SQLException;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.swing.JOptionPane;/** * * @author ROSANGELA */publicclassTela_Loginextendsjavax.swing.JFrame{/** Creates new form Tela_Login */publicTela_Login(){initComponents();}privatevoidjBAcessarActionPerformed(java.awt.event.ActionEventevt){if(jTFUsuario.getText().equals("")||jPSenha.getText().equals("")){JOptionPane.showMessageDialog(null,"Os campos não podem ser vazios");}else{ValidaLoginvl=newValidaLogin();vl.setLogin(jTFUsuario.getText());vl.setSenha(jPSenha.getText());try{TelaLoginDaodao=newTelaLoginDao();vl=dao.ValidaLogin.searchByCod(vl);/*nesta linha está dizendo que tenho que fazer uma classe ValidaLogin no pacote onde fica os dados do banco de dados*/JOptionPane.showMessageDialog(this,"Tela_Principal");System.exit(0);}catch(SQLExceptionex){JOptionPane.showMessageDialog(null,"Senha ou login não conferem"+ex);}}}privatevoidjBSairActionPerformed(java.awt.event.ActionEventevt){System.exit(0);}
tela login dao
packagedao_peculio;importLogica.ValidaLogin;importbd.peculio.CriaConexao;importcom.mysql.jdbc.PreparedStatement;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;/** * * @author ROSANGELA */publicclassTelaLoginDao{privateConnectionconexaoLogin;publicTelaLoginDao()throwsSQLException{// Recupera conexão com o banco de dadosthis.conexaoLogin=CriaConexao.getConexao();}publicValidaLoginsearchByCod(Stringvl)throwsSQLException{Stringsql="select login , senha from tab_login where login = ? , senha = ? ";// Compila / prepara instrução SQL para execuçãoPreparedStatementstmt=(PreparedStatement)conexaoLogin.prepareStatement(sql);// Preenche parâmetros (?) da instrução SQLstmt.setString(1,"login");stmt.setString(2,"senha");// Executa instrução SQL de consulta// Armazena resultado na consulta em um objeto do tipo ResultSetResultSetrs=stmt.executeQuery();// Instancia novo objeto do tipo loginValidaLoginvalidalogin=newValidaLogin();while(rs.next()){validalogin.setLogin(rs.getString("login"));validalogin.setSenha(rs.getString("senha"));}rs.close();stmt.close();return(validalogin);}}
Explicação. Você instanciou um objeto TelaLoginDao que possui um metodo searchByCod. Não existe nenhum atributo ValidaLogin. Você referencia o método da classe Dao com o seu objeto diretamente.
Abraços e sucesso!
rosawestphal
eu novamente, hehe. esta dando erro na consulta sql, esta me retornando com senha ou login invalido, acho que não está passando
pelo:
stmt.setString(1, v1.getLogin());
stmt.setString(2, v1.getSenha());
//Notou a diferença?
Abs,
rosawestphal
é verdade, um erro bobo. já arrumei, mas uma coisinha. esta dando o seguinte erro
tela de erro:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
You have an error in your syntax;check the manual that corresponds to your MySQL server version for the right syntax to use near
'senha ='1234" at line1
henriqueluz
Altere esta linha:
Stringsql="select login , senha from tab_login where login = ? , senha = ? ";
Para:
Stringsql="select login , senha from tab_login where login = ? AND senha = ? ";
rosawestphal
rosawestphal:
bom pessoal me ajudem, estou tentando valisdar o login de um sistema, mas está me pedindo par fazer uma classe, abaixo o codigo:
codigo do banco de dados:
publicValidaLoginsearchByCod(Stringvl)throwsSQLException{Stringsql="select from tab_login where login , senha like? ";//Compila/preparainstruçãoSQLparaexecuçãoPreparedStatementstmt=(PreparedStatement)conexaoLogin.prepareStatement(sql);//Preencheparâmetros(?)dainstruçãoSQLstmt.setString(1,"login");stmt.setString(2,"senha");//ExecutainstruçãoSQLdeconsulta//ArmazenaresultadonaconsultaemumobjetodotipoResultSetResultSetrs=stmt.executeQuery();//InstancianovoobjetodotipologinLoginvalidalogin=newLogin();while(rs.next()){validalogin.setLogin(rs.getString("login"));validalogin.setSenha(rs.getString("senha"));}rs.close();stmt.close();return(validalogin);}[quote]
e na janela para chamar a classe ValidaLogin
private void jBAcessarActionPerformed(java.awt.event.ActionEvent evt) {
if (jTFUsuario.getText().equals("") || jPSenha.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Os campos não podem ser vazios");
} else {
Login vl = new Login();
vl.setLogin(jTFUsuario.getText());
vl.setSenha(jPSenha.getText());
try {
TelaLoginDao dao = new TelaLoginDao();
vl = dao.ValidaLogin.searchByCod(vl);
JOptionPane.showMessageDialog(this, "Tela_Principal");
System.exit(0);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Senha ou login não conferem" + ex);
}
}
}