Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di salcam
    Registrato dal
    Dec 2005
    Messaggi
    193

    JPA JTable con molti records

    Salve a tutti,
    immaginate di avere una JTable collegata ad una tabella di un database, che abbia migliaia di records.

    Io utilizzo JPA per interagire col DB, ma essendo tanti i record, ogni volta che faccio una select di tutti i record, ho un rallentamento (naturale).

    Quello che vorrei fare è legare la select alla scrollbar della jtable, in modo tale che a video vedo solo i risultati parziali e quando "scrollo" faccio una nuova select dei prossimi X records.

    Per fare una select parziale, utilizzo il metodo setMaxResults di java persistence e funziona bene, ma c'è un modo per legare alla scrollbar verticale???

    Spero di essermi spiegato bene.

    Saluti, SC
    Meglio essere scemi con la propria testa, che saggi con le idee altrui.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JPA JTable con molti records

    Originariamente inviato da salcam
    Per fare una select parziale, utilizzo il metodo setMaxResults di java persistence e funziona bene, ma c'è un modo per legare alla scrollbar verticale???
    Nooo. Non alla scrollbar!!!

    Ma a quello che viene "chiesto" al table model!! E questo vuol dire che dovresti implementare un "tuo" table model, discretamente sofisticato, che magari sfrutta un sistema, anche artigianale, di "caching".

    Man mano che scorri una ipotetica tabella "lunga", al table model vengono chiesti man mano i dati. L'ordine di richiesta delle celle non interessa più di tanto. Quello che puoi fare è tenere un tot di righe in una "cache" che gestisci tu in memoria con una apposita struttura dati.
    La logica sarebbe semplice: al table model viene chiesto il valore della cella alla locazione Y,X. La riga Y è in cache? Bene restituisci subito il valore della cella. La riga Y non è in cache? La devi caricare dal DB. Potresti anche (ri)caricare più righe e poi decidere quali di quelle in memoria sono più "vecchie" e rimpiazzarle.
    Hai già capito ... qui si tratta solo di conoscere i concetti sugli algoritmi di caching.

    Il succo comunque è semplice: non ci si basa su una "scrollbar" ma sul "table model"!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di salcam
    Registrato dal
    Dec 2005
    Messaggi
    193
    Ricevuto... Grazie
    Meglio essere scemi con la propria testa, che saggi con le idee altrui.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.