Login em Java
Pessoal boa noite, estou voltando a fazer minha facul e estou com um trabalho em java pra fazer.
neste trabalho tenho uma tela de login aonde estou tendo um pequeno problema: "Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.microsoft.sqlserver.jdbc.SQLServerStatement cannot be cast to java.sql.PreparedStatement".
segue o código:
no meu login esta assim:
Por favor me ajudem.
neste trabalho tenho uma tela de login aonde estou tendo um pequeno problema: "Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.microsoft.sqlserver.jdbc.SQLServerStatement cannot be cast to java.sql.PreparedStatement".
segue o código:
package Classes;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author YURIMENECHELLI
*/
public class conexao {
public static Connection conexaoBD;
public static Connection getConexaoBD() {
return conexaoBD;
}
public static void setConexaoBD(Connection conexaoBD) {
conexao.conexaoBD = conexaoBD;
}
public static boolean ConectarBD(){
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conexaoBD = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=projSustentabilidade", "sa","12345");
System.out.println("Conexão obtida com sucesso!");
return true;
}catch(SQLException ex){
System.out.println("SQLException: "+ ex.getMessage());
System.out.println("SQLState: "+ ex.getSQLState());
System.out.println("VendorError: "+ ex.getErrorCode());
return false;
}catch(Exception e){
System.out.println("Não foi possível conectar ao banco: "+ e);
return false;
}
}
}no meu login esta assim:
private void btnEntrarActionPerformed(java.awt.event.ActionEvent evt) {
String login = new String(((JTextField) edtLogin).getText());
String senha = new String(((JPasswordField) edtPass).getPassword());
if (edtLogin.getText().equals("") || edtPass.getText().equals(""))// se login e senha em branco
JOptionPane.showMessageDialog(null,"Campos login e senha são obrigatórios");//mensagem
else
{
try
{
String sql = "select * from Login where APELIDOID like '" + login +"' and SENHA like '"+ senha +"'";
PreparedStatement stm = (PreparedStatement) conexao.getConexaoBD().createStatement();
rs = stm.executeQuery(sql);// executa a varialvel sql acima
if(rs.first())// conecta e busca o primeiro registro igual e compara se for certo entra senao da erro no CATCH
{
JOptionPane.showMessageDialog(null,"Login Efetuado com Sucesso!");
controla = rs.getString("Estatus");
if ("A".equals(controla)) // TIPO DE ACESSO DO ADMINISTRADOR
{
new frmPrincipal().setVisible(true);// chama o formulario principal ao conecta
dispose();// fecha o formulario de login ao entrar no principal
}
}
else{
JOptionPane.showMessageDialog(null, "Usuário não ativo");
edtLogin.requestFocus();
}
} catch (SQLException erro)
{
JOptionPane.showMessageDialog(null, "Problemas de conexão com a base de dados");
}
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(() -> {
new frmLogin().setVisible(true);
});Por favor me ajudem.
Yuri Menechelli
Curtidas 1
Melhor post
Marcio Souza
04/11/2018
java.lang.ClassCastException: com.microsoft.sqlserver.jdbc.SQLServerStatement cannot be cast to java.sql.PreparedStatement
Significa que você tem um import errado, deve ser na classe que tem o método btnEntrarActionPerformed(). O import certo é esse: java.sql.PreparedStatement
GOSTEI 1
Mais Respostas
Yuri Menechelli
01/11/2018
Por favor alguém poderia me ajudar?
GOSTEI 0