Botão de logar não realiza a ação

Estou tendo um problema na hora de realizar o login - quando o botão entrar é apertado, nada acontece. Meu código segue abaixo. As partes em relação a conexão e ao login estão destacadas!

package conexao;
import java.sql.;
import javax.swing.
;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class login extends JFrame{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pst = null;
private JPanel painelTop, painelL, painelPrin;
private JButton entrar;
private JLabel login, senha, titulo;
private JTextField Tlogin;
private JPasswordField Tsenha;
public login(){
conn = Conexao.ConnectDB();
painelTop = new JPanel();
painelL = new JPanel();
painelPrin = new JPanel();
entrar = new JButton(“Entrar”);
login = new JLabel(“Login:”);
senha= new JLabel("Senha: ");
Tlogin = new JTextField();
Tsenha = new JPasswordField();
titulo = new JLabel(“Jornal Iserj”);
Font f = new Font(“SansSerif”, Font.BOLD, 90);
setLayout(null);
setResizable(false);
painelTop.setBackground(new Color(0, 0, 0));
painelL.setBackground(new Color(255,165,79));
painelPrin.setBackground(new Color(255,255,255));
entrar.setBackground(new Color(255,165,79));
painelTop.setLayout(new java.awt.FlowLayout(
java.awt.FlowLayout.CENTER));
painelTop.setBounds(10, 10, 705, 150);
painelL.setLayout(new java.awt.FlowLayout(
java.awt.FlowLayout.CENTER));
painelL.setBounds(10, 150, 705, 50);
painelPrin.setLayout(new java.awt.FlowLayout(
java.awt.FlowLayout.CENTER));
painelPrin.setBounds(10, 200, 705, 200);
login.setBounds(250, 250, 150, 20);
senha.setBounds(250, 270, 150, 20);
Tlogin.setBounds(300, 250, 150, 20);
Tsenha.setBounds(300, 270, 150, 20);
entrar.setBounds(380, 300, 70, 20);
titulo.setForeground(Color.WHITE);
titulo.setFont(f);
entrar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
try{
String sql = “SELECT usuario, senha FROM funcionario WHERE usuario=? senha=?”;
pst = conn.prepareStatement(sql);
pst.setString(4, Tlogin.getText());
pst.setString(5, Tsenha.getText());
rs = pst.executeQuery();
if(rs.next()){
System.out.println(“Login bem-sucedido.”);
}else{
System.out.println(“Login mal-sucedido.”);
}
}
catch(Exception e){
}
}});
add(login);
add(senha);
add(entrar);
add(Tlogin);
add(Tsenha);
add(painelTop);
add(painelL);
add(painelPrin);
painelTop.add(titulo);
setTitle(“Login”);
setSize(740, 450);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public static void main(String args[]){
login frame = new login();
}
}

E aqui vai o código de conexão:

package conexao;
import java.sql.;
import javax.swing.
;
public class Conexao {
Connection conn = null;
public static Connection ConnectDB(){
try{
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/jornaliserj”,“root”,"");
JOptionPane.showMessageDialog(null, “Conectado!”);
return conn;
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}

Alguém tem alguma noção do motivo do botão não estar realizando a ação e saberia me dar uma dica de como consertar? Sou extremamente iniciante no java :confused:

DEBUG!!!
Se o botão tem o evento de click implementado não há como não executar-lo ao clicar. Sua lógica deve estar furada.
Debuga e vê oque de fato é executado, pq até seu catch está meio estranho.

Aliás: seu catch está vazio então se algum error ocorrer vc nem vai ver, dando a impressão que “nada acontece”.

Botei para mostrar o erro e dá erro na sintaxe SQL, em relação a senha. Vou dar uma olhada aqui. (pelo menos agora eu sei de onde vem o erro.)
Obrigada!

Ok, fiz umas modificações, mas o erro continua o mesmo.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘senha = ‘1234’’ at line 1

Imagino eu que se refira ao Select:

String sql = “SELECT * FROM funcionario WHERE usuario = ?, senha = ?”;

Mas não consigo achar o erro :confused: Alguém sabe?

Pq vc faz setString no parametro 4 e 5 se a sql só tem 2 parâmetros?

É, isso tava errado mesmo, eu tinha mudado algumas coisas e esquecido de alterar os parâmetros… Mas o outro erro continua.

 SELECT * FROM funcionario WHERE usuario = ? AND senha = ?
1 curtida

Era isso mesmo… :l O que a falta de atenção não faz, né. Obrigada!