Buenas noches compañeros, me ha surgido un problema que no entiendo porque se produce y es que, al conectar todo va bien y muy correcto, pero a la hora de, cuando yo pulso a un botón y le meto unos datos en un JTextfield, se realiza una consulta desde otra clase que me tiene que devolver un JOptionPane con un mensaje de error personalizado...el problema es que me salta este error.
Pongo el código:
btnBuscar = new JButton("BUSCAR");
btnBuscar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String MP = codigoMP.getText().toString();
System.out.println(MP);
try {
objConex.buscarCMP(MP);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnBuscar.setBounds(233, 39, 91, 23);
getContentPane().add(btnBuscar);
El error me da justo donde poner "objConex.buscarCMP(MP);
El tema es que, si en el main, le pongo en vez que llame a la clase desde donde voy a mostrar un panel para que este me envíe la consulta, le pongo esto:
LISTAR = new JButton("VER PIEZAS EN STOCK");
LISTAR.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String codMP = JOptionPane.showInputDialog("Ingrese el id");
try {
objConex.buscarCMP(codMP);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
LISTAR.setBounds(10, 11, 164, 42);
getContentPane().add(LISTAR);
Me funciona sin problemas...y no lo entiendo...
Y luego en esta parte también:
public ResultSet buscarCMP(String mp) throws SQLException {
try {
stm = conex.createStatement();
String cadSQL = "";
System.out.println(mp);
cadSQL = "SELECT * FROM MATERIAPRIMA WHERE CODMP = '" + mp + "'";
rs = stm.executeQuery(cadSQL);
if (!rs.next()) {
JOptionPane.showMessageDialog(null, "No existe tal registro");
} else {
return rs;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
//stm.close();
}
return null;
}
El error me lo dá justo donde pone "stm = conex.createStatement();"
¿Alguna idea?