elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Java + Mysql consulta lenta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Java + Mysql consulta lenta  (Leído 6,730 veces)
rigoxls

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Java + Mysql consulta lenta
« en: 13 Agosto 2009, 20:11 pm »

Saludos comunidad

Escribo esta vez porque tengo una aplicacion que conecta a una base de datos para guardar información de acuerdo a un formulario, o simplemente consulta en una tabla los registros que hay...

Es un .jar y la conexion es a una base de datos local de mysql, mm funciona bien, el lio es que cuando oprimo el boton que ejecuta la consulta, el proceso me tarda demasiado, al rededor de 30 segundos hasta que me muestra la consulta en pantalla...

No se si estoy haciendo una subrutina inecesaria o que pasa??

agergo el codigo

Código:
puntma.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

modelo = new DefaultTableModel();
    tabla = new JTable(modelo);
   
puntamay.add(tabla);



try
        {
       
            DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());           
       
           
            Connection con = DriverManager.getConnection (
                "jdbc:mysql://localhost/tetris","root", "rigoxls");
               
               
                Statement s = con.createStatement();
                ResultSet rs = s.executeQuery("select * from info where puntaje != '0' order by puntaje desc");
               
               
                               
               
// Creamos las columnas.
modelo.addColumn("Id");
modelo.addColumn("Nombre");
modelo.addColumn("Puntaje");
modelo.addColumn("Lineas");
modelo.addColumn("Comentario");



// Bucle para cada resultado en la consulta
while (rs.next())
{
   
   Object [] fila = new Object[5];

 
   for (int i=0;i<5;i++)
      fila[i] = rs.getObject(i+1);

   // Se añade al modelo la fila completa.
   modelo.addRow(fila);
}


   TableColumn column = null;
for (int i = 0; i < 5; i++) {
    column = tabla.getColumnModel().getColumn(i);
    if (i == 0) {
        column.setPreferredWidth(5);
    }
    if (i == 1) {
        column.setPreferredWidth(50);
    }
    if (i == 2) {
        column.setPreferredWidth(50);
    }
    if (i == 3) {
        column.setPreferredWidth(50);
    }
    if (i == 4) {
        column.setPreferredWidth(180);
    }
}



    tabla.setPreferredScrollableViewportSize(new Dimension(400, 100));
    JScrollPane scrollPane = new JScrollPane(tabla); 
   
    puntamay.add(scrollPane);      

           
           
            con.close();
        }
        catch (Exception h)
        {
            h.printStackTrace();
        }

puntamay.setVisible(true);   

}
}
);


En línea

No hay verdades absolutas sin ciegas posiciones !!!
BEATMASTER

Desconectado Desconectado

Mensajes: 153



Ver Perfil WWW
Re: Java + Mysql consulta lenta
« Respuesta #1 en: 15 Agosto 2009, 19:29 pm »

pues podria ser tu Pc, a mi me ha pasado que aplicaciones java con bases de datos me corren "normal" en Pcs con buenos recursos, pero en la mia que ya es algo viejita (una pentium 4 a 2Ghz) corre mas lento algo asi como lo que mencionas entre 20 y 30 segundos :P


En línea

sapito169


Desconectado Desconectado

Mensajes: 628



Ver Perfil
Re: Java + Mysql consulta lenta
« Respuesta #2 en: 15 Agosto 2009, 22:58 pm »

-ese codigo no tiene ningun problema y corre a una velocidad aceptable solo si tu tabla o vista info tiene pocos registro digamos menos de 4 mill o 5 mill

-en primer lugar no es muy inteligente mandar casi toda tu tabla o vista a la memoria

-si tu tabla tiene pocos registros y aun se demora el problema lla no es de codigo el problema estaria en otra parte

si tu tabla es inmensa y no hay forma de evitarlo:
-obliga al usuario a primero filtrar la consulta y no la metas a memoria asta que el usuario alla terminado de filtrar

solucion facil y recomendad
-paginala por decir muestra de 20 en 20 registros

otra solucion dificil
-hereda del abstractablemodel y calcula los registros en tiempo de ejecucion en otras palabras no uses defaultablemodel ni llenes primero todos los registros en una coleccion para luego nuevamente recorrerlo y aserle consultas y luego motrarlo en la tabla

« Última modificación: 15 Agosto 2009, 23:02 pm por sapito169 » En línea

rigoxls

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Java + Mysql consulta lenta
« Respuesta #3 en: 16 Agosto 2009, 03:35 am »

Saludos y gracias
BEATMASTER y sapito169
por responder,

Bueno, la verdad es que la tabla en la que hago la consulta si tiene pocos registros, al rededor de 10 porque la tengo como una tabla de prueba por el momento, tal vez como indica BEATMASTER dependa de mi maquina, ya que ps si es viejita me corre a 1.8 GHZ...
En línea

No hay verdades absolutas sin ciegas posiciones !!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemas con variable JAVA / PHP y consulta MySQL
Desarrollo Web
blitz_arg 1 1,986 Último mensaje 8 Enero 2014, 20:09 pm
por Shell Root
Aplicación propia de Java, muy lenta....
Programación General
dandorf 0 1,818 Último mensaje 12 Enero 2014, 14:42 pm
por dandorf
java Swing y mysql remota es lenta
Java
soy_nicanor 1 1,547 Último mensaje 4 Abril 2016, 09:12 am
por 4dr14n31t0r
AYUDA. Hacer una consulta de java a mysql, con restrincciones
Java
Larry16 1 1,983 Último mensaje 7 Julio 2016, 10:39 am
por joserene
consulta java mysql
Java
REMHINOB 1 1,567 Último mensaje 23 Febrero 2017, 20:51 pm
por m3rcury
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines