Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA]metodo di insert in un db

    ho una enorme quantità di dati memorizzato in file xml...
    ho raccolto questi dati e li ho inseriti in una LinkedList di un oggetto creato da me: Articolo.
    In articolo, oltre ai singoli campi, ho delle liste, ad esempio di autori.
    codice:
    public class Articolo{
    public LinkedList autori;
    public String titolo;
    }
    Quindi la base di dati è formata da
    Articolo(IdArticolo ,titolo)
    Autore(IdAutore ,nome)
    Scritto(IdAutore,IdArticolo)


    1-mi scandisco la lista grande.
    2-per ogni oggetto faccio:
    2.1-insert in articolo
    2.2-controllo se l'autore è gia presente:
    se già presente mi prendo l'id,
    altrimenti lo inserisco e mi prendo l'ìd inserito
    2.3-controllo se in scritto c'è già la coppia (autore,articolo):
    se non c'è lo inserisco
    altrimenti vado avanti con il prossimo oggetto

    in realtà ci sono altre tabelle nella bd, ma tutte allo stesso modo molti a molti.

    questo metodo risulta molto molto molto lento...
    qualcuno mi aiuta a velocizzare?

  2. #2
    Come fai a scandire la LinkedList? e perchè utilizzi questa collezione?
    O ( ( |-| | O |)| |= /\ |_ ( o

  3. #3
    codice:
    for (int i = 0 ; lista.size() ; i++)
    {
       Articolo tmp=(Articolo)lista.get(i);
       //tutto il resto del codice per le insert
    }
    Quale collezione mi consiglieresti di usare?

  4. #4

    Collezione.....

    Io utilizzerei Un Array List, visto che la linked list se non sbaglio è la collezione che ha dei puntatori(link) ad altre collezioni, nel tuo caso non vedo la necessità di usarle.
    Ti consiglierei di utilizzare come ti ho detto un ArrayList e ciclarla con un Iterator.

    Es.
    Articolo ar = new Articolo();
    ArrayList a = new ArrayList();
    a.add(ar);
    Iterator i = a.Iterator();
    while(i.hasNext())
    {
    Articolo artic = (Articolo)i.next();
    }

    L'iterator è sicuramente piu' veloce di un for e anche l'ArrayList è una collezione che penso faccia al caso tuo

    Ciao by Occhio Di falco!!!
    O ( ( |-| | O |)| |= /\ |_ ( o

  5. #5
    a dir la verità usavo ArrayList, ma mi hanno consigliato di usare LinkedList in quanto più veloci...
    ora provo con l'iterator!!
    grazie

  6. #6
    niente! rimane comunque molto molto lento!!! grazie cmq!
    altri suggerimenti?

  7. #7

    DBMS

    Che dbms usi?

    Mi appare strano che una query così "leggera" sia lenta, ne ho fatte di più pesanti io ma..... non erano lente bahhh.....
    O ( ( |-| | O |)| |= /\ |_ ( o

  8. #8
    uso MySql 5 su piattaforma linux...

  9. #9

    AHH...

    Non saprei proprio!!!!

    Forse... ma mi sembra un po una soluzione blanda.....

    Prova a mettere i campi sulle tabelle su cui devi fare la ricerca di tipo UNIQUE!!! se non lo hai già fatto!!!

    Questo è l'unico modo che so per far velocizzare la ricerca !!!

    (Ad esempio se un record lo ricerchi per il campo A prova a mettere il campo A UNIQUE)

    Ciao
    O ( ( |-| | O |)| |= /\ |_ ( o

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 © 2025 vBulletin Solutions, Inc. All rights reserved.