Jump to content

[Java y SQL] Problema al llenar Jtable


Recommended Posts

Hola que tal! estoy programando Java pero lo hago desde netbeans y estoy tratando de pasar una consulta de base de datos (SQL) a un jtable, les soy sincero en siguiente codigo que escribo no es mio, este lo encontre en buscado mi problema en Google.

 

Es de esta pagina http://www.chuidiang.com/java/mysql/resultset_jtable.php; en fin. El problema es este:

 

1.- La consulta es esta "SELECT cancion.nombre,cancion.duracion,cancion.costo_uni,cancion.tamaxo FROM cancion INNER JOIN album ON cancion.album = album.idalb WHERE album.nombre IN ("aki recibo el nombre que me proprciona el usuario");

 

2.- La consulta si la hace y esta bien ya la cheque, como pueden ver la consulta me da como resultado 4 columnas; esas columnas tienen etiquetas que no deseo utilizar por eso quiero etiquetarlas a mi manera.

 

3.-Ejecutando es codigo si me lanza la consulta, pero me repite:

* las 4 columnas me las repite 3 veces mas y con datos en blanco. :(

** la consulta me la hace dos veces :(

 

seria algo asi

 

Nombre | Duracion| Precio |Tamaño||Nombre | Duracion | Precio |Tamaño||Nombre |Duracion |Precio | Tamaño

-------------------------------------------------------------------------------------------------------------------------------------------------

cancion1|1.23 |2.58 |2.05 ||-----------|-----------|--------|----------||-----------|-----------|---------|---------

cancion1|1.23 |2.58 |2.05 ||-----------|-----------|--------|----------||-----------|-----------|---------|---------

 

public void manual(ResultSet rs, DefaultTableModel modelo){

 

//aki agrego el nombre de las columnas

 

modelo.addColumn("Nombre");

modelo.addColumn("Duracion");

modelo.addColumn("Precio");

modelo.addColumn("Tamaño");

 

try{

while (rs.next())

{

 

Object [] fila = new Object[4]; <--- se supone que aki indico que son 4 columnas :(

 

for (int i=0;i<4;i++)

fila = rs.getObject(i+1);

 

modelo.addRow(fila);

}

}catch(Exception e){e.printStackTrace();}

}

 

 

Si alguien me podria decir como corregir este error, puesto que yo ya me me canse y no le hallo el error, y de hecho me esta costando trabajo el aplicarlo en netbeans.

 

Cualquier ayuda seria muy agradecida. :)

Edited by Darkzoe
Link to comment
Share on other sites

  • 2 weeks later...

el resultado tiene que tener un retorno y tiene que ser tipo ResultSet

 

public ResultSet buscarCancion(String cancion)
    {

        ResultSet resultado=null;
        try{
            

            Connection connection = Conexion.getConexion();
            Statement st = connection.createStatement();
            String query ="SELECT cancion.nombre,cancion.duracion,cancion.costo_uni,cancion.tamaxo FROM cancion INNER JOIN album ON cancion.album = album.idalb WHERE album.nombre IN('"+cancion+"'")";
            PreparedStatement search = Conexion.getConexion().prepareStatement(query);

            resultado = search.executeQuery();

        }catch(Exception e)
        {
            System.err.println("no se encontro registro");

        }
           [b] return resultado;[/b]
    }

 

Luego en evento del boton buscar

 

Cancion //(esta es la clase donde estas realizaste el codigo para la busqueda, si estas trbajando a 3 capas me entenderas)// cancion = new Cancion();
try{
            ResultSet set = cancion.buscarCancion(this.txtCancionBuscargetText());

         DefaultTableModel modelo = new DefaultTableModel
        (
            new Object [][]
            {
            },
            new String []
            {
                 "Nombre","Duracion","Precio","Tamaño"
            }
        );



        ResultSetMetaData rsmd = set.getMetaData();


        while(set.next())
        {
            Object[] objeto = new Object[4];
            for(int x=0;x<4;x++){
                objeto[x]=set.getObject(x+1);
            }
            modelo.addRow(objeto);
        }
        JTable.setModel(modelo);

        }catch(Exception e)
        {
                e.printStackTrace();
        }
}
        

    }       

 

Espero que te sirva

Saludos

Edited by wiwOx
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...