public void actionPerformed(ActionEvent arg0) {
try{
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sistemarfid?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&useTimezone=true&serverTimezone=UTC", "root", "12345");
String sql = "select cod_barras from produto where cod_barras = ?";
PreparedStatement pstm = null;
ResultSet rs = null;
rs = pstm.executeQuery("select cod_produto, descricao from produto");
pstm = con.prepareStatement(sql);
while (rs.next()){
codigo_produto_rfid.setText(String.valueOf(rs.getInt(1)));
}
pstm.execute();
pstm.close();
con.close();
}catch (SQLException e){
System.out.println (e);
}
catch (Exception e) {System.out.println (e);}
}
});``
Qual és el erro mi consagrado?
O erro:
java.lang.NullPointerException
A ordem de execução está errada, você esta primeiro executando a Query do PreparedStatement e depois recebendo ele da Conexão.
No momento da Query ele está nulo, troque a ordem para:
pstm = con.prepareStatement(sql);
rs = pstm.executeQuery(“select cod_produto, descricao from produto”);
Fiz dessa maneira e deu certo! Obrigado a todos pela atenção!
Classe:
package Classes_conexao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
public class Function {
Connection con = null;
ResultSet rs = null;
PreparedStatement ps = null;
public ResultSet find(String s){
try{
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sistemarfid?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&useTimezone=true&serverTimezone=UTC", "root", "12345");
ps = con.prepareStatement("select * from produto where cod_barras = ?");
ps.setString(1,s);
rs = ps.executeQuery();
}catch(Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
}
return rs;
}
}
Botão:
public void actionPerformed(ActionEvent e) {
Function f = new Function();
ResultSet rs = null;
rs = f.find(codigo_barras_rfid.getText());
try{
if(rs.next()){
codigo_produto_rfid.setText(rs.getString("cod_produto"));
descricao_produto_rfid.setText(rs.getString("descricao"));
} else{
JOptionPane.showMessageDialog(null, "Error");
}
}catch(Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}
});