Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup es.comp.lenguajes.* Foro > Newsgroup es.comp.lenguajes.java
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 21-02-2008, 20:14:57
luisfleon@gmail.com
 
Mensajes: n/a
Predeterminado Filtrar Consulta en jTable basado en ResultSet

Saludos amigos, quiero hacerles una consulta para ver que me sugieren.
Estoy haciendo una ventana de consulta. Un JTable y JTextField. De
manera que al ir escribiendo en el JTextField, se deberia ir filtrando
la informacion consultada, actualizando el JTable en base a un
ResultSet. Cuando hago la prueba con una tabla de 12 registros
funciona a la perfeccion, el detalle es que cuando la prueba con una
tabla de 40 mil registros, se pone lentisimo. Me gustaria tener su
recomendaciones sobre lo que podria hacer al respecto ... Es correcto
lo que estoy haciendo ? Como podria mejorarlo ? .. Agradezco mucho sus
comentarios. Que utilizo es el siguiente:

// *** JDialgo JBuscar ***



public class JBuscar extends javax.swing.JDialog implements
TableModelListener {

private Connection conexion;
private ResultSet consulta;
private ResultSetTableModel tableModel;

// *** Constructor ***

public JBuscar() {
Class.forName("com.ibm.as400.access.AS400JDBCDrive r");
conexion=DriverManager.getConnection(url,usuarios, clave);
Statement sentencia=CONEXION.createStatement(ResultSet.TYPE_
SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE,
ResultSet.HOLD_CURSORS_OVER_COMMIT);
consulta=sentencia.executeQuery("SELECT CODIGOPAIS, DESCRIPCIONPAIS
FROM PAIS");
tableModel = new ResultSetTableModel(consulta);
initComponents();
}

// *** initComponents ***

private void initComponents() {
....

jTextField1 = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new JTable(tableModel);

....
}


// *** Evento CaretUpdate del jTextField ***

private void jTextField1CaretUpdate(javax.swing.event.CaretEven t evt)
{
if (!this.jTextField1.getText().trim().equals("")) {
consulta = FrmPrincipal.getConexionPrincipal().Consulta("SELE CT
CODIGOPAIS, DESCRIPCIONPAIS FROM PAIS WHERE CODIGOPAIS + " LIKE '%" +
this.jTextField1.getText().trim().toUpperCase() + "%'");
} else {
consulta = FrmPrincipal.getConexionPrincipal().Consulta("SELE CT
CODIGOPAIS, DESCRIPCIONPAIS FROM PAIS");
}
tableModel = new ResultSetTableModel(consulta);
this.jTable1.setModel(tableModel);

}

}

//**************************
Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado






Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.