La instancia de objconex, es la clase conexionDB...
La instancia conex, la uso en la clase conexionDB para "conex = DriverManager.getConnection(url, user, pass);
El problema es que tengo esto:
Código PHP:
public class ConexionDB {
String user;
String pass;
String url;
static Connection conex;
static Statement stm;
static ResultSet rs;
public ConexionDB() {
user = "alumno";
pass = "alumno";
url = "jdbc:oracle:thin:@PCVIRTUAL:1521:BASE";
conex = null;
stm = null;
}
public void conectar() {
try {
Class.forName("oracle.jdbc.OracleDriver").newInstance();
conex = DriverManager.getConnection(url, user, pass);
JOptionPane.showMessageDialog(null, "Conexion realizada con éxito");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Conexion fallida");
JOptionPane.showInputDialog(e, null);
}
}
Código PHP:
public ResultSet LeerDatosDB() throws SQLException {
try {
stm = conex.createStatement();
String cadSql = "";
cadSql = "SELECT * FROM PRODUCTOS ORDER BY id";
rs = stm.executeQuery(cadSql);
} catch (SQLException ex) {
Logger.getLogger(ConexionDB.class.getName()).log(Level.SEVERE,
null, ex);
} finally {
// stm.close();
}
return rs;
}
Es lo que no entiendo, porque esto si funciona e hice lo mismo, en el botón que puse:
Código PHP:
LISTAR = new JButton("VER PIEZAS EN STOCK");
LISTAR.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
DefaultTableModel dfm = new DefaultTableModel();
MenuGUI.tbl.setModel(dfm);
dfm.setColumnIdentifiers(new Object[] { "FECHA RECEPCIÓN",
"ALBARÁN", "PARTE RECEPCIÓN", "LOTE",
"CANTIDAD ENTRADA", "CANTIDAD SALIDA", "FORMATO",
"STOCK" });
rs = objConex.LeerDatosDB();
try {
while (rs.next()) {
dfm.addRow(new Object[] {
rs.getDate("FRECEPCION"),
rs.getInt("ALBARAN"),
rs.getString("PRECEPCION"),
rs.getString("LOTE"),
rs.getString("CENTRADA"),
rs.getString("CSALIDA"),
rs.getString("FORMATO"),
rs.getString("STOCK") });
}
} finally {
rs.close();
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
/*public void actionPerformed(ActionEvent arg0) {
//String codMP = JOptionPane.showInputDialog("Introduzca el código de Materia Prima");
VerCMP.main(null);
/*try {
//objConex.buscarCMP(codMP);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}*/
});
LISTAR.setBounds(10, 11, 164, 42);
getContentPane().add(LISTAR);
Cuando yo puse aqui directamente "objConex.LeerdatosDB();" funciona correctamente...
PD: Conectar la aplicación, lo hace sin problemas...