Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    23

    Inserimento risultati quei in vettore

    Buonasera a tutti, sto facendo un programma in java, e mi sono inbattuto in un problema: con una stringa sql estraggo dei dati dal DB, solo che voglio stamparli a video e ho bisogno di metterli, quindi, in un array (Stampando a video direttamente il resultSet della query mi manda solo il primo valore ). Non ricordo la sintassi giusta, qualcuno può aiutarmi?

    PS: deve essere un vettore di Stringhe

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da abab Visualizza il messaggio
    Stampando a video direttamente il resultSet della query mi manda solo il primo valore
    Detto così è strano, c'è qualcosa di scorretto o inappropriato. Senza vedere il codice ... non so dire.

    Quote Originariamente inviata da abab Visualizza il messaggio
    Non ricordo la sintassi giusta, qualcuno può aiutarmi?

    PS: deve essere un vettore di Stringhe
    Sintassi di cosa? Come istanziare un array? O magari meglio una lista (se non sai a priori la dimensione)?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    23
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Detto così è strano, c'è qualcosa di scorretto o inappropriato. Senza vedere il codice ... non so dire.


    Sintassi di cosa? Come istanziare un array? O magari meglio una lista (se non sai a priori la dimensione)?
    Di una lista, come posso costruirla tenendo conto che devo metterci i risultati di una query?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da abab Visualizza il messaggio
    Di una lista, come posso costruirla tenendo conto che devo metterci i risultati di una query?
    Una lista la crei semplicemente così:

    codice:
    List<Tipo> lista = new ArrayList<Tipo>();
    
    lista.add( ...... );

    dove Tipo è un qualunque tipo reference, String, Integer, ecc... anche una tua classe.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    23
    Grazie mille! Può andare bene una cosa del genere?

    rs = stmt.executeQuery("SELECT username from users");
    List<String> lista = new ArrayList<String>();
    lista.add(rs.getString(1));

    Però il risultato della query è composto da diversi username, devo metterci un While per ciclarli e prendere tutti?
    Un'ultima cosa, per poi stampare a video basta richiamare "lista", giusto?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da abab Visualizza il messaggio
    Però il risultato della query è composto da diversi username, devo metterci un While per ciclarli e prendere tutti?
    Sì, dovrai fare un ciclo:

    codice:
    rs = stmt.executeQuery("SELECT username from users");
    
    List<String> usernames = new ArrayList<String>();
    
    while (rs.next()) {
        usernames.add(rs.getString(1));
    }

    Naturalmente le risorse vanno chiuse alla fine (e in qualunque caso, anche se rs.next o rs.getXXX dovessero lanciare una eccezione). Serve purtroppo un po' di noiosa e ripetitiva infrastruttura quando si usa direttamente JDBC.


    Quote Originariamente inviata da abab Visualizza il messaggio
    Un'ultima cosa, per poi stampare a video basta richiamare "lista"
    Ti servirà un ulteriore ciclo ma puoi usare il "for-each" di Java 5.

    codice:
    for (String username : usernames) {
        //....
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2017
    Messaggi
    23
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Sì, dovrai fare un ciclo:

    codice:
    rs = stmt.executeQuery("SELECT username from users");
    
    List<String> usernames = new ArrayList<String>();
    
    while (rs.next()) {
        usernames.add(rs.getString(1));
    }

    Naturalmente le risorse vanno chiuse alla fine (e in qualunque caso, anche se rs.next o rs.getXXX dovessero lanciare una eccezione). Serve purtroppo un po' di noiosa e ripetitiva infrastruttura quando si usa direttamente JDBC.



    Ti servirà un ulteriore ciclo ma puoi usare il "for-each" di Java 5.

    codice:
    for (String username : usernames) {
        //....
    }

    Grazie mille! Sei stato gentilissimo, funziona perfettamente! Tanto ci sono ti chiedo un' altra cosa, come posso gestire il caso in cui la query non dia risultati? Perché se la stringa sql è vuota Eclipse mi da errore: "illegal operation in empty result". C'è un modo per eliminare questo errore e far stampare a video una stringa specifica?

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