Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129

    cosa ritorna una query che nn trova nulla??

    Salve a tutti!!!

    Ho una query che funziona correttamente, pero' vorrei sollevare un'eccezione nel caso in cui la query non trova nulla nel database. Quindi la mia domanda è:

    "Se la query che va ad interrogare il database non trova nulla io cosa ottengo indietro?"

    Grazie!!!

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

    Re: cosa ritorna una query che nn trova nulla??

    Originariamente inviato da Mitttico
    "Se la query che va ad interrogare il database non trova nulla io cosa ottengo indietro?"
    JDBC?? Allora se non si ha una eccezione SQLException per qualunque altro motivo più grave, quello che ottieni è un ResultSet "vuoto", senza alcuna riga (next() ti dà subito false).
    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
    Oct 2007
    Messaggi
    129
    si riesce quindi a dire "se il primo next() è vuoto fai......" ??

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Mitttico
    si riesce quindi a dire "se il primo next() è vuoto fai......" ??
    E dove è la difficoltà???

    codice:
    ResultSet rs = stmt.executeQuery(.....);
    
    if (!rs.next()) {
        // il result set è vuoto
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    129
    pero' così facendo già mi estrae il primo risultato della query, no??

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Mitttico
    pero' così facendo già mi estrae il primo risultato della query, no??
    Beh se invece ci fossero dei record, sì ovviamente si posiziona sul primo record. Ma ripeto, quale sarebbe il problema??

    O fai:

    codice:
    if (!rs.next()) {
        // nessun record
    } else {
        // ci sono record
        do {
            ....usa il record....
        } while (rs.next());
    }
    e nota il do-while (perché se il next() nel if è true, passa nel else ed è già su un record)

    Oppure, se non ti piace come soluzione, l'altra è usare una variabile di stato che indica se hai trovato qualcosa o no:

    codice:
    boolean vuoto = true;
    
    while (rs.next()) {
        vuoto = false;
        ....
    }
    
    if (vuoto) {
        // nessun record
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.