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

    [JAVA] scelta tra 2 casi metodo main

    Devo creare una classetta java che lanciata da console faccia 2 cose (semplifico il tutto o almeno provo):

    1) esplorare in maniera ricorsiva una directory per cercare dei file
    2) esaminare la tabella Controlli con una select e poi (in base ai controlli effettuati) scrivere nella tabella DatiTrovati i dati relativi ai file trovati (nella directory) che soddisfano i controlli



    ecco ho pensato a 2 modi

    modo 1:
    1)viene lanciato un primo metodo che esplora in maniera ricorsiva la directory e scrive nella lista ListaFile tutti i file trovati nella directory
    2) viene fatta un'unica select su Controlli e poi viene fatto ciclare il ResultSet: per ogni riga del ResultSet viene poi iterata tutta ListaFile e quando (e se) si trovano i file che soddifano i controlli derivanti da quella riga del DB si fa la insert

    modo 2:
    viene lanciato un metodo che esplora in maniera ricorsiva la directory e per ogni file trovato si esegue una select su Controlli (tirando fuori 1 solo record) e quando (e se) quel record, confrontato con il file, soddisfa il controllo si fa la insert

    nel primo caso si farebbe un'unica select ma per ogni riga del ResultSet si itererebbe su tutta la lista mentre nel secondo caos si itererebbe una sola volta ma si farebbero tante select quanti sono gli elementi della lista

    quale vi pare il metodo migliore?

    un'altra cosa: dal mio main posso chiamare solo metodi statici della mia classe a meno che non istanzio un oggetto della mia classe (o magari di un'altra); ecco, come si usa fare di solito? si istanzia un oggetto nel main e si chiamano metodi non statici di quell'oggetto o si chiamano direttamente i metodi statici senza quindi istanziare nulla?

    grazie

  2. #2
    Allora....
    Il metodo migliore è quello di effettuare a priori il meno operazioni di connessione sul db, questo perchè ogni singola operazione che istanzi una connessione al database è parecchio onerosa in quanto tempo e risorse utilizzate...quindi meno se ne fanno ( nel modo più efficiente possibile ) e meglio è.

    Per quanto riguarda la soluzione è meglio il merodo 1

    modo 1:
    1)viene lanciato un primo metodo che esplora in maniera ricorsiva la directory e scrive nella lista ListaFile tutti i file trovati nella directory
    2) viene fatta un'unica select su Controlli e poi viene fatto ciclare il ResultSet: per ogni riga del ResultSet viene poi iterata tutta ListaFile e quando (e se) si trovano i file che soddifano i controlli derivanti da quella riga del DB si fa la insert
    Un caloroso consiglio è quello di creare una String sql con dei parametri e ciclicamente impostarli senza tutte le volte dover ricreare la PreparedStatement e di chiudere Connection solamente alla fine delle operazione ( destroy del main o fine di tutto ), altrimenti diventa inutile il discorso di non creare nuove connessione che generano lavoro oneroso.

    Giusto per puntualizzare ( dato che non metto in dubbio la conoscenza del tuo java, ma il fatto che questo thread lo possano leggere con meno esperienza ) ricordarsi sempre di chiudere il [bold]ResultSet[/bold] al termine dell'analisi dei vari risultati perchè nel caso in cui si trattino di solo alcuni puntatori a Db ( per l'appunto ResultSet ) non fa niente, ma non è corretto, ma nel caso di centinai o migliaia di puntatori dimenticati aperti il Database potrebbe imparare a parlare e imprecare -.-'

  3. #3
    grazie

  4. #4
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    ...
    Giusto per puntualizzare ( dato che non metto in dubbio la conoscenza del tuo java, ma il fatto che questo thread lo possano leggere con meno esperienza )...
    ...( ...questo thread lo possano leggere persone con meno esperienza....

    io ed i soggetti.....
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

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.