Visualizzazione dei risultati da 1 a 7 su 7

Hybrid View

  1. #1
    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?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    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.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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