Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Conteindo SQL en JTable

Estas en el tema de Conteindo SQL en JTable en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/09/2014, 03:21
 
Fecha de Ingreso: julio-2014
Ubicación: España
Mensajes: 83
Antigüedad: 10 años, 3 meses
Puntos: 2
Conteindo SQL en JTable

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:

Código PHP:
    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(101116442);
    
getContentPane().add(LISTAR); 
Aqui la parte que da a la conexión de la base de datos:

Código PHP:
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(urluserpass);
            
JOptionPane.showMessageDialog(null"Conexion realizada con éxito");
        }catch(
Exception e){
            
JOptionPane.showMessageDialog(null"Conexion fallida");
            
JOptionPane.showInputDialog(enull);
        }
    }
    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.SEVEREnullex);
        }
finally{
            
stm.close();
        }
        return 
rs;
    } 
El error que me da es el siguiente:

java.sql.SQLRecoverableException: Sentencia cerrada: next
  #2 (permalink)  
Antiguo 15/09/2014, 15:53
 
Fecha de Ingreso: julio-2014
Ubicación: España
Mensajes: 83
Antigüedad: 10 años, 3 meses
Puntos: 2
Respuesta: Conteindo SQL en JTable

Cita:
Iniciado por yesod91 Ver Mensaje
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:

Código PHP:
    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(101116442);
    
getContentPane().add(LISTAR); 
Aqui la parte que da a la conexión de la base de datos:

Código PHP:
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(urluserpass);
            
JOptionPane.showMessageDialog(null"Conexion realizada con éxito");
        }catch(
Exception e){
            
JOptionPane.showMessageDialog(null"Conexion fallida");
            
JOptionPane.showInputDialog(enull);
        }
    }
    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.SEVEREnullex);
        }
finally{
            
stm.close();
        }
        return 
rs;
    } 
El error que me da es el siguiente:

java.sql.SQLRecoverableException: Sentencia cerrada: next
EDITO: He modificado parte del código, sigue sin mostrarse nada, pero ahora no da error, simplemente he comentado el stm.close();

¿Alguna idea de como solucionarlo?


EDITO: SOLUCIONADO, simplemente con poner el código del botón justo debajo de donde se genera la tabla.

Última edición por yesod91; 16/09/2014 a las 14:50 Razón: SOLUCIONADO

Etiquetas: jtable, programa, sql, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.