Buenas noches compañeros, estoy intentando realizar un programa que me muestre los datos de una consulta simple como puede ser "SELECT * FROM PRODUCTOS;" en un JTable
Aqui teneis el código para ver si podeis echar una mano:
LISTAR = new JButton("VER PIEZAS EN STOCK");
LISTAR.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
DefaultTableModel dfm = new DefaultTableModel();
tbl.setModel(dfm);
dfm.setColumnIdentifiers(new Object[] { "FALBARAN",
"FRECEPCION", "ALBARAN", "PRECEPCION",
"LOTE", "ID", "CENTRADA",
"CSALIDA", "FORMATO", "STOCK" });
//ConexionDB cn = new ConexionDB();
rs = objConex.LeerDatosDB();
try {
while (rs.next()) {
dfm.addRow(new Object[] {
rs.getDate("FALBARAN"),
rs.getDate("FRECEPCION"),
rs.getInt("ALBARAN"),
rs.getString("PRECEPCION"),
rs.getString("LOTE"), rs.getInt("ID"),
rs.getString("CENTRADA"),
rs.getString("CSALIDA"),
rs.getString("FORMATO"),
rs.getString("STOCK") });
}
} finally {
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
LISTAR.setBounds(10, 11, 164, 42);
getContentPane().add(LISTAR);
Aqui la parte que da a la conexión de la base de datos:
public class ConexionDB {
String user;
String pass;
String url;
static Connection conex;
static Statement stm;
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);
}
}
public ResultSet LeerDatosDB() throws SQLException {
stm = conex.createStatement();
String cadSql = "";
try {
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;
}
El error que me da es el siguiente:
java.sql.SQLRecoverableException: Sentencia cerrada: next