public void logar(){
String sql = “select * from tb_usuarios where login_usuario=? and senha_usuario=? and perfil_usuario=?”;
try {
pst= conexao.prepareStatement(sql);
pst.setString(1,txtUsuario.getText());
pst.setString(2,txtSenha.getText());
while(rs.next()){
pst.setString(3,cmbPerfil.addItem(rs.getString(“perfil_usuario”)));
}
} catch (Exception e) {
}
}
fiz este código só que não está trazendo dados do banco de dados alguem pode me ajudar ficarei grato
Apaga as variáveis de instância pst
e rs
, elas devem ser somente variáveis locais.
Também faltou você executar a query.
Isso aqui está errado:
pst.setString(3, cmbPerfil.addItem(rs.getString("perfil_usuario")));
Você está tentando setar um parâmetro na query e esse parâmetro você está tentando obter do resultset, não faz o menor sentido.
qual o codigo correto para está aplicação
Uma dica (sem ironia nenhuma): baseado neste e no seu outro tópico, parece que vc está com dificuldade em entender o básico, e está tentando coisas aleatórias na esperança que funcione (é a impressão que passa).
Então sugiro voltar alguns passos e ler este tutorial de JDBC. Leia com calma, e só depois tente alterar o código.
No seu caso, acho que ficaria algo assim:
String sql = "select * from tb_usuarios where login_usuario=? and senha_usuario=? and perfil_usuario=?";
try (PreparedStatement pst = conexao.prepareStatement(sql)) {
pst.setString(1, txtUsuario.getText());
pst.setString(2, txtSenha.getText());
pst.setString(3, cmbPerfil.getText());
// executa a query
try (ResultSet rs = stmt.executeQuery(query)) {
// obtém os resultados da query
while (rs.next()) {
// aqui vc usa rs.getString(), etc, para obter os dados da query
}
}
} catch (SQLException e) {
// tratar o erro, mostrar mensagem, etc
}
Repare também que usei o try-with-resources, que garante que os recursos serão fechados ao final. Ver mais informações aqui.